(這里以Java程序為例,其他同理)
步驟 1:編寫 systemd 服務文件
- 創(chuàng)建服務文件:
使用文本編輯器(如vim或nano)創(chuàng)建服務文件。例如,假設你的 Java 程序是myapp.jar,可以創(chuàng)建一個名為myapp.service的文件:
sudo vim /etc/systemd/system/myapp.service
- 添加服務配置:
在myapp.service文件中添加以下內容,替換路徑和參數(shù)為你實際的 Java 程序路徑和配置:
[Unit]
Description=My Java Application
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/java -jar /path/to/your/myapp.jar
# 服務失敗時自動重啟,這里kill掉程序將不斷自啟,若不需要可以設置為no
Restart=always
User=root
Group=root
WorkingDirectory=/path/to/your/
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk"
StandardOutput=journal
StandardError=journal
# 若需要,可將日志從默認journal輸出到對應的文件[file/append]
# StandardOutput=append:/root/service.log
# StandardError=append:/root/service.log
[Install]
WantedBy=multi-user.target
說明:
-
Description:服務的描述。 -
After:確保服務在網(wǎng)絡啟動后運行。 -
ExecStart:啟動命令,指定 Java 路徑和 jar 文件路徑。 -
Restart:設置服務失敗時自動重啟。 -
User和Group:指定運行服務的用戶和組,建議使用非 root 用戶。 -
WorkingDirectory:指定工作目錄(jar 文件所在目錄)。 -
Environment:設置環(huán)境變量(可選,根據(jù)你的 Java 安裝路徑設置Java環(huán)境變量)。 -
StandardOutput和StandardError:將輸出和錯誤日志記錄到 systemd 的 journal 中。
步驟 2:設置文件權限
確保服務文件具有正確權限:
sudo chmod 644 /etc/systemd/system/myapp.service
步驟 3:重新加載 systemd 配置
讓 systemd 識別新創(chuàng)建的服務文件:
sudo systemctl daemon-reload
步驟 4:啟用開機自啟動
啟用服務以便在系統(tǒng)啟動時自動運行:
sudo systemctl enable myapp.service
步驟 5:啟動服務
立即啟動服務以測試:
sudo systemctl start myapp.service
步驟 6:檢查服務狀態(tài)
確認服務是否正常運行:
sudo systemctl status myapp.service
步驟 7:查看日志
如果需要調試,可以查看服務的日志:
sudo journalctl -u myapp.service