systemd服務(一):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


浙公網安備 33010602011771號