Skip to content

Systemd

官网

systemd.service | service文件 systemd.exec 环境变量

man systemctl man systemd.service

Note

通常位于/etc/systemd/system/目录下

命令示例

命令 说明
systemctl cat sshd 查看服务内容
systemctl list-units --type=service

配置

日志

Note

不配置StandardOutput 和 StandardError 所有 print() 或程序输出都默认发送到 systemd journal

StandardOutput=file:/var/log/cs.log
StandardError=file:/var/log/cs.log

Type

  • simple:服务进程 不 fork,前台运行

  • forking:服务进程 会 fork,父进程退出,子进程在后台运行

案例

frpc

[Unit]
Description=FRP Client
After=network.target

[Service]
Type=simple
ExecStart=/root/soft/frp_0.61.2_linux_amd64/frpc -c /root/soft/frp_0.61.2_linux_amd64/frpc.toml
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
RestartSec=5
User=root
Group=root
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

uvicorn

[Unit]
Description=uvicorn
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=xx/.venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000

Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target

JupyterLab

[Unit]
Description=JupyterLab
After=network.target

[Service]
Type=simple
User=jupyter
Group=jupyter
WorkingDirectory=/home/jupyter
ExecStart=/usr/bin/jupyter-lab \
  --ip=0.0.0.0 \
  --port=8888 \
  --no-browser
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

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
☁️ 部署建议
如果你打算长期运行项目(博客 / API / 自动化脚本),建议直接用云服务器,会比本地稳定很多。
👉 查看云服务器(新用户优惠)