|
@@ -0,0 +1,45 @@
|
|
|
+步骤一:创建服务文件
|
|
|
+创建一个以 .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
|
|
|
+
|
|
|
+
|