编写 systemd 脚本

编写 systemd 脚本

我有一个需要在启动时运行的进程。它需要在机器开启的整个时间内保持运行。到目前为止,我每次启动服务器时都会在 bash 中输入以下内容。

command -f argument & disown

我知道我需要制作一个 init 脚本,但我不知道该怎么做。经过一番研究,Ubuntu 似乎使用 systemd(一些参考资料说是 Upstart,它们不一样吧?)作为其 init 系统。但我在网上找到的所有指南都告诉我将可执行文件放在 或 中/etc/init。Init/etc/init.d应该是一个完全不同的 init 系统。

有人能给我指点一下吗?一个 systemd 示例脚本甚至一个在线指南都会很有帮助。

答案1

您需要两个文件:

  1. 您的脚本文件:

    command.sh
    
  2. .service要放置的文件并授予以下/etc/systemd/system权限:644chmod 664 command.service

    command.service
    
  3. 最简单的内容command.service是:

    [Unit]
    Description=Some service description
    
    [Service]
    ExecStart=/bin/bash -c "/path/to/command.sh -f argument & disown"
    
    [Install]
    WantedBy=multi-user.target
    
  4. 现在为了使其在启动时启动,我们使用systemd控制器systemctl

    sudo systemctl enable command
    
    # or 
    
    sudo systemctl enable command.service
    

请注意,各个部分还有更多选项可供选择,请参阅这里,并确保你的command.sh可执行文件为chmod +x command.sh

相关内容