步骤一:创建服务文件 创建一个以 .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