在目录/lib/systemd/system
中,我创建了一个文件XYZ.service。
运行systemctl start XYZ
时,它不会返回。我不得不做Ctrl-C来发出命令。想知道为什么。
有趣的是,在我输入Ctrl-C之后。我可以访问服务XYZ。
知道我做错了什么吗?感谢。
这是文件XYZ.service
[Unit]
Description=XYZ
After=network.target
[Service]
Type=forking
ExecStart=/var/www/html/XYZ/ctrler
[Install]
WantedBy=multi-user.target
答案 0 :(得分:7)
最有可能的是,你的命令不是分叉,有时称为守护进程。你说Type=forking
这意味着该命令应该执行 fork(),并在设置完成并且服务启动并运行时让父进程返回。您的systemctl
命令正在等待这种情况发生。
如果命令在没有分叉的情况下运行,您可以通过设置systemd
告诉Type=simple
。
有关Type
配置的详细信息,请参阅 systemd.service 的手册页。