我有一个需要在启动时运行的进程。它需要在机器开启的整个时间内保持运行。到目前为止,我每次启动服务器时都会在 bash 中输入以下内容。
command -f argument & disown
我知道我需要制作一个 init 脚本,但我不知道该怎么做。经过一番研究,Ubuntu 似乎使用 systemd(一些参考资料说是 Upstart,它们不一样吧?)作为其 init 系统。但我在网上找到的所有指南都告诉我将可执行文件放在 或 中/etc/init
。Init/etc/init.d
应该是一个完全不同的 init 系统。
有人能给我指点一下吗?一个 systemd 示例脚本甚至一个在线指南都会很有帮助。
答案1
您需要两个文件:
您的脚本文件:
command.sh
.service
要放置的文件并授予以下/etc/systemd/system
权限:644
chmod 664 command.service
command.service
最简单的内容
command.service
是:[Unit] Description=Some service description [Service] ExecStart=/bin/bash -c "/path/to/command.sh -f argument & disown" [Install] WantedBy=multi-user.target
现在为了使其在启动时启动,我们使用
systemd
控制器systemctl
:sudo systemctl enable command # or sudo systemctl enable command.service
请注意,各个部分还有更多选项可供选择,请参阅这里,并确保你的command.sh
可执行文件为chmod +x command.sh