123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 步骤一:创建服务文件
- 创建一个以 .service 结尾的文件,通常存放在 /etc/systemd/system/ 目录下。例如,创建一个名为 myprogram.service 的文件:
- sudo nano /etc/systemd/system/myprogram.service
- 步骤二:编辑服务文件
- 在文件中添加以下内容,这里以启动一个名为 myprogram 的程序为例:
- [Unit]
- Description=My Program
- After=network.target
- [Service]
- ExecStart=/path/to/myprogram # 替换为实际程序的路径
- Restart=always # 程序崩溃时自动重启
- RestartSec=5 # 重启前等待的时间,单位为秒
- User=your_username # 替换为运行程序的用户名
- StartLimitInterval=60s # 在60秒内允许的最大重启次数
- StartLimitBurst=3 # 在指定时间间隔内允许的最大重启次数
- [Install]
- WantedBy=multi-user.target
- 对上述配置的解释如下:
- - [Unit] 部分 :
- - Description :是对服务的描述信息。
- - After :表示该服务在网络服务启动后再启动。
- - [Service] 部分 :
- - ExecStart :是要执行的程序路径,你需要将其替换为实际程序的路径。
- - Restart=always :设定程序无论因何原因退出(正常退出、异常退出等),都会自动重启。
- - RestartSec=5 :指定程序在退出后,等待 5 秒再尝试重启。
- - StartLimitInterval=60s 和 StartLimitBurst=3 :结合起来表示在 60 秒内,如果服务重启次数达到 3 次, systemd 将不再尝试重启该服务,避免陷入无限重启循环。
- - [Install] 部分 :
- - WantedBy=multi-user.target :指定服务在多用户模式下启动。
- 步骤三:重新加载systemd管理器配置
- sudo systemctl daemon-reload
- 步骤四:启动并设置服务开机自启
- sudo systemctl start myprogram.service
- sudo systemctl enable myprogram.service
|