如何在 tty 上启动脚本而不是要求在 systemd 中登录?

如何在 tty 上启动脚本而不是要求在 systemd 中登录?

我需要在 tty1 上启动并打印脚本,而不是要求登录。链接到:如何在使用 systemd 要求 tty 登录之前解析 /proc/cmdline

我尝试创建一个启动简单 bash 脚本的服务:

#!/bin/bash
echo "trying to print this on screen before tty login"
read ok

和服务:

[Unit]
Description=Before tty login script launcher

[Service]
Type=simple
ExecStart=/bin/bash -c "/opt/starter.sh"

[Install]
WantedBy=getty.target

在那之后

cd /lib/systemd/system ; ln -s ./starter.service ./getty.target.wants/starter.service

启动时,它不断启动 tty 登录,而不提示我的脚本。我不想在登录后启动脚本,因为脚本需要root权限,所以如果有人按CTRL+C,他将拥有root访问权限。

答案1

这是有效的:

[Unit]
Description=Script starter
After=getty.target
[email protected]

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/opt/starter.sh
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit

[Install]
WantedBy=graphical.target

感谢#systemd“grawity”和“zdzichu”的帮助。

相关内容