在 Linux 上创建系统服务
· 约 1 分钟阅读
在 Linux 上,可使用 systemctl 创建系统服务。
假定服务名称为 foo。
创建服务配置
在 /etc/systemd/system/foo.service 创建服务配置。比如
[Unit]Description= xxxxAfter=network.target
[Service]DynamicUser=yesWorkingDirectory=xxxxExecStart=xxxxRestart=alwaysRestartSec=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