Linux程序崩溃自启动方法

 

linux进程挂掉后,可以通过配置 systemd 来自动启动服务
1.创建 systemd 服务文件,例如:huyang.service,需要放置在系统文件夹 /etc/systemd/system
2.编辑文件,填写详细信息
3.操作 systemd 服务
[Unit]
Description=huyang SCRS server                # 对服务的描述
After=network.target                          # 指该服务需要在网络服务启动后,再启动

[Service]
Type=simple                                   # 表示该服务是一个简单的进程
WorkingDirectory=/opt/eloamwss                # 服务所在文件夹
ExecStart=/opt/eloamwss/start.sh              # 服务启动命令
ExecStop=killall eloamwss                     # 服务停止命令
Restart=always                                # 不管什么原因,都会重启
RestartSec=3                     # 重启间隔时间3秒

[Install]
WantedBy=multi-user.target

 

# 拷贝 huyang.service 到 系统文件夹
cp huyang.service /etc/systemd/system/huyang.service

# systemd 服务操作命令
sudo daemon-reload                         # 重新加载 systemd 的配置
sudo systemctl start huyang.service        # 启动 systemd 服务
sudo systemctl stop huyang.service         # 停止 systemd 服务
sudo systemctl enable huyang.service       # 开机自启动
sudo systemctl disable huyang.service      # 关闭开机自启动
sudo systemctl status huyang.service       # 查看服务状态

 

 

报错排查问题方法
可以通过 获取服务状态 来排查问题(sudo systemctl status huyang.service)
# 报错:Service lacks both ExecStart= and ExecStop= setting. Refusing.
service文件里面有 ExecStart  但是没有 ExecStop,所以我加上了 ExecStop,就好了

# 报错:Unit huyang_SCRS.service is not loaded properly: 无效的参数
我的 ExecStart 使用 shell 脚本来启动的,我也试了直接终端运行 shell 都是成功的,后面发现是 sh 文件不标准,第一行要加入:#!/bin/sh

 

 

 

 

 

posted @ 2023-11-09 15:31  十一的杂文录  阅读(364)  评论(0编辑  收藏  举报