https://zhuanlan.zhihu.com/p/449630262
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
https://blog.csdn.net/skh2015java/article/details/94012643
https://www.cnblogs.com/usmile/p/13065594.html (十分详细)
https://www.cnblogs.com/wang1001/p/14773566.html
目录
单元管理
systemctl 提供了一组子命令来管理单个的 unit,其命令格式为:
systemctl [command] [unit]
command 主要有:
start:立刻启动后面接的 unit。
stop:立刻关闭后面接的 unit。
restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
enable:设置下次开机时,后面接的 unit 会被启动。
disable:设置下次开机时,后面接的 unit 不会被启动。
status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
is-active:目前有没有正在运行中。
is-enabled:开机时有没有默认要启用这个 unit。
- 设置开机启动一次
# unit file
[Unit]
Description=After boot start shell
After=network.target auditd.service
[Service]
ExecStart=/root/cron/start.sh
Restart=no
Type=oneshot
RemainAfterExit=yes #这个要加上,否则service一挂启动的脚本和程序会随之一起挂
[Install]
WantedBy=multi-user.target
# notes
Type=oneshot # 运行后退出类型的程序
RemainAfterExit=yes # 退出后依旧保留active状态
-
查看系统正在运行的服务
systemctl list-units --type=service --state=running
-
systemctl stop某个服务时,保留服务开启的子程序
https://www.cnblogs.com/real-bert/p/14849338.html -
判断服务有没有设置开机启动
systemctl is-enabled <service_name>
坑
- service启动的脚本或者子脚本,不管是否使用nohup &,统统都会加入同一cgroup。service 停止,所有脚本启动的进程都会被杀死。(由kill-mod所决定的)
service启动时间长的问题
https://blog.csdn.net/fish332/article/details/128648468
vim /etc/systemd/system.conf
修改 DefaultTimeoutStopSec 的值,默认90秒,可以改为5秒,注意去掉前边的#号
service启动失败的几种情况
- service文件更新了
Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: frps_BMC0A22390A003.service: main process exited, code=exited, status=127/n/a Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: Unit frps_BMC0A22390A003.service entered failed state. Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: frps_BMC0A22390A003.service failed. Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: frps_BMC0A22390A003.service holdoff time over, scheduling restart. Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: Stopped frps_BMC0A22390A003 Service. Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: start request repeated too quickly for frps_BMC0A22390A003.service Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: Failed to start frps_BMC0A22390A003 Service. Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: Unit frps_BMC0A22390A003.service entered failed state. Nov 22 17:46:33 iZbp19ct1kz8g25hyneydxZ systemd[1]: frps_BMC0A22390A003.service failed.
需要先调用
systemctl daemon-reload
再调用start命令。
0 条评论