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 条评论

发表回复

您的电子邮箱地址不会被公开。