在 Linux 上创建系统服务
在 Linux 上,可使用 systemctl
创建系统服务。
假定服务名称为 foo
。
创建服务配置 🔗
在 /etc/systemd/system/foo.service
创建服务配置。比如
[Unit]
Description= xxxx
After=network.target
[Service]
DynamicUser=yes
WorkingDirectory=xxxx
ExecStart=xxxx
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
注意:使用 DynamicUser
可让服务以非 root
运行,降低安全风险。而对于那些可能要写文件的服务,使用动态用户是无法写文件的,那么可以创建一个新的没有交互式 Shell 的用户,比如:
useradd -r -s /bin/false serviceuser
如果有环境变量,那么可以使用 Environment
配置,比如
[Service]
# ...
Environment="MY_VARIABLE1=value1"
Environment="MY_VARIABLE2=value2"
Environment="MY_VARIABLE3=value3"
# ...
启动服务 🔗
systemctl start foo
查看运行状态和日志 🔗
systemctl status foo -l
也可使用 journalctl
查看日志
journalctl -u foo.service
或者查看最后的 10 行日志
journalctl -u telegraf.scada.json.opcua.service -n 10 --no-pager
加入到系统启动项 🔗
systemctl enable foo
列出所有的系统服务 🔗
systemctl list-units --type=service
删除日志 🔗
如果想删除系统服务的日志,可使用
journalctl --unit=your-service-name.service --vacuum-size=100M
或者
journalctl --unit=your-service-name.service --vacuum-time=2weeks
加载中...