我想在getty.target到达之后从systemd启动一个交互式脚本。到目前为止,这是有效的,但是,systemd会在几秒钟后杀死脚本。 systemd单元如下所示:
[Unit]
Description = Some interactive script
Requires = getty@tty1.service
After = getty@tty1.service
[Service]
Type = oneshot
ExecStart = /usr/local/bin/my-script
StandardInput = tty
StandardOutput = tty
TTYPath = /dev/tty1
TTYReset = yes
TTYVHangup = yes
[Install]
WantedBy = multi-user.target
在脚本中有对dialog
,mount
等的调用。没有什么特别的,但它是一个交互式脚本。 Systemd一直在杀死剧本,我不明白为什么。 systemctl status interactive-script.service
的输出如下:
● interactive-script.service - Some interactive script
Loaded: loaded (/etc/systemd/system/interactive-script.service; enabled)
Active: inactive (dead) since Tue 2016-06-28 10:18:07 UTC; 14min ago
Main PID: 364 (code=killed, signal=HUP)
使用journalctl -b -u interactive-script.service
得到的日志输出为空:
-- Logs begin at Mon 2015-11-09 11:49:52 UTC, end at Tue 2016-06-28 10:30:28 UTC. --
我已经尝试添加 KillMode = none ,没有运气。然后我尝试了 TimeoutStartSec = infinity - systemd抱怨它不理解它因此我试图将它设置为10000但是脚本在几秒钟之后就被杀死了。我尝试将其作为 Type = simple 和 Type = forking 运行,但都无济于事。
重点是启动脚本似乎工作正常(对话框出现)但systemd一直在杀死脚本。如何实现systemd 不会终止此交互式脚本?