linux添加服务到systemctl

1. 添加服务

linux的systemctl的服务文件保存在/lib/systemd/system/etc/systemd/system中,这里以/lib/systemd/system为例。
首先准备一个service文件,名字为XXX.service
该文件示例内容如下:

copy
[Unit] Description=Baidu service Documentation=https://www.baidu.com/ After=network.target nss-lookup.target [Service] User=nobody CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE NoNewPrivileges=true ExecStart=/path/to/your/service your_arg1 your_arg2 Restart=on-failure RestartPreventExitStatus=23 [Install] WantedBy=multi-user.target

拷贝文件到:/lib/systemd/system

copy
/lib/systemd/system/XXX.service

刷新systemctl的缓存:

copy
sudo systemctl daemon-reload

启动服务:

copy
sudo systemctl start XXX

2. 将输出保存到文件中,而不是journalctl日志中

修改输入输出:(直接添加到service文件的[service]

copy
StandardOutput=file:/path/to/log.txt StandardError=file:/path/to/log.txt

或者每次启动服务都追加写入:

copy
StandardOutput=append:/path/to/log.txt StandardError=append:/path/to/log.txt

3. @的作用

部分服务中你会发现有XXX@.service,你可以打开该文件,里面会出现一个%i,比如:

copy
... ExecStart=/path/to/your/service %i ...

当你启动服务时,可以写

copy
systemctl start XXX@yyy

这样会把yyy传递给%i

posted @   王冰冰  阅读(1121)  评论(2编辑  收藏  举报
相关博文:
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起