我试图编写一个在后台启动Xvfb的systemd脚本。
在控制台中执行此操作当然不会出现附加“&”的问题。
但是我试图编写一个systemd脚本,当我用以下命令手动启动它时
service xvfb start
似乎它从不发送到后台,因为在运行此命令后再也没有提示。
这是脚本:
[Unit]
Description=Xvfb
After=tomcat.service
[Timer]
# Time to wait after booting before we run first time
OnBootSec=1min
[Service]
Type=forking
User=test
Group=test
ExecStart=/usr/bin/Xvfb :99
ExecStop=/bin/kill -15 $MAINPID
[Install]
WantedBy=multi-user.target
我是否需要使用其他类型?
Type=forking
适用于自己分叉和后台运行的进程-aka旧样式守护程序。这导致systemd等待进程自身退出后台并跟踪子进程的pid文件或其他方式。您的应用程序永不退出,因此systemd继续等待。
相反,您应该使用
Type=simple
适用于没有背景知识的应用程序。这会使systemd守护程序跟踪该进程,但是systemctl
会为您有效地将其后台后台程序立即返回。默认类型为简单,因此您可以根据需要Type
完全省略该标志。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句