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的缓存:
copysudo systemctl daemon-reload
启动服务:
copysudo systemctl start XXX
2. 将输出保存到文件中,而不是journalctl日志中
修改输入输出:(直接添加到service文件的[service]
块
copyStandardOutput=file:/path/to/log.txt
StandardError=file:/path/to/log.txt
或者每次启动服务都追加写入:
copyStandardOutput=append:/path/to/log.txt
StandardError=append:/path/to/log.txt
3. @的作用
部分服务中你会发现有XXX@.service,你可以打开该文件,里面会出现一个%i
,比如:
copy...
ExecStart=/path/to/your/service %i
...
当你启动服务时,可以写
copysystemctl start XXX@yyy
这样会把yyy传递给%i
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步