system service
2025年9月5日小于 1 分钟
提示
/etc/systemd/system/xxx.service
systemctl daemon-reload
systemctl enable xxx.service
$MAINPID是 systemd 的环境变量,代表了 ExecStart启动的主进程的PID
停止时发送 SIGTERM 杀死主进程和子进程
KillMode=control-group
TimeoutStopSec=30
nacos
[Unit]
Description=Nacos Server
After=network.target
[Service]
Type=forking
ExecStart=/opt/nacos/bin/startup.sh
ExecStop=/opt/nacos/bin/shutdown.sh
User=root
Group=root
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
java
[Unit]
Description=Java Application 1
After=nacos.service
[Service]
Type=simple
ExecStart=/usr/bin/java -jar /path/to/your/app1.jar
# 添加停止指令:向进程发送 SIGTERM 信号
ExecStop=/bin/kill -SIGTERM $MAINPID
User=yourusername
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
python
[Unit]
Description=My FastAPI Project
After=network.target
[Service]
User=user
Group=user
WorkingDirectory=/home/user/myproject
# 激活虚拟环境后执行 uvicorn
ExecStart=/home/user/myproject/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=5
# 停止时发送 SIGTERM
KillMode=control-group
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target