在centos上面开机自启动某个程序

Posted 黑手党老k

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在centos上面开机自启动某个程序相关的知识,希望对你有一定的参考价值。

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。可以通过 systemctl --version 命令来查看使用的版本

常用命令

# 立即启动一个服务
$ sudo systemctl start apache.service
# 立即停止一个服务
$ sudo systemctl stop apache.service
# 重启一个服务
$ sudo systemctl restart apache.service
# 杀死一个服务的所有子进程
$ sudo systemctl kill apache.service
# 重新加载一个服务的配置文件
$ sudo systemctl reload apache.service
# 重载所有修改过的配置文件
$ sudo systemctl daemon-reload
# 显示某个 Unit 的所有底层参数
$ systemctl show httpd.service

Supervisor

Supervisor是是一个用python写的进程管理程序,不仅仅可以用来管理进程,还可以用来做开机启动。它有但不限于以下一些功能:

重启机器后,能够自启动。
平时有个方便的进程查看方式。
能够有个方便的方式重启进程。

配置方法这里就不做记录了,不过要注意,默认的配置文件里面会把一些supervisor生成的重要文件放到 /tmp 目录下面,操作系统可能会把这些文件进行删除,导致 supervisorctl 命令由于找不到这些以前放到 /tmp 的文件而操作不了已经启动的supervisor进程。

方法

为了能够在机器启动之后自动启动supervisor,需要把supervisor进程配置进systemd,

步骤:

  1. 进入目录 /usr/lib/systemd/system/,增加文件 supervisord.service,来使得机器启动的时候启动supervisor,文件内容
# supervisord service for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
  1. 激活开机启动命令

    systemctl enable supervisord.service
  2. 启动supervisor进程

    systemctl start supervisord.service
  3. 关闭supervisor进程

    systemctl stop supervisord.service
  4. 如果修改了supervisor.service文件,可以通过reload命令来重新加载配置文件

    systemctl reload supervisord.service

检查

可以通过 ps 命令可以查看supervisor 是否启动,并且可以查看supervisor管理的进程是否启动。

以上是关于在centos上面开机自启动某个程序的主要内容,如果未能解决你的问题,请参考以下文章

centos 开机启动执行某个脚本(rc.local)

添加啥代码可以使vbs脚本开机自启动?

CentOS开机自动启动脚本

Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法

centos 6.5怎么设置mongodb 3.0.6 开机自启动

Centos7配置BIND开机自启动