OpenBSD上的服务管理程序rcctl
rcctl 是OpenBSD系统上的后台进程(daemon)管理程序,功能上类似于以前redhat Linux上的chkconfig或新版中的systemctl。
它其实是一个shell脚本程序,最早见于OpenBSD 5.7。需要有root权限才可以使用。
它的原理主要是通过在/etc/rc.conf.local文件中设置相应进程的配置来完成。被管理的进程需要在/etc/rc.d/目录下有相应的控制脚本文件。
主要功能及示例
(下面的内容主要是根据rcctl的man手册翻译而来,我再加上一些范例。愿意的朋友可以自己阅读man手册)
启用或禁用后台进程(包括系统自带进程如httpd以及通过软件包安装的进程如mysqld/nginx等,下同)
rcctl enable httpd ## 启用 rcctl disable httpd ## 禁用
启动或停止后台进程
rcctl start httpd rcctl stop httpd
也可以根据需要传入 -d (开启debug)或 -f (强制)参数
列出进程相关的参数
# rcctl get httpd httpd_class=daemon httpd_flags= httpd_timeout=30 httpd_user=root
列出进程默认参数
# rcctl getdef httpd httpd_class=daemon httpd_flags= httpd_timeout=30 httpd_user=root
如果你没修改过默认参数,那么它和get子命令的输出应该是相同的
列出符合特定条件的进程
rcctl ls $con
列出符合条件的进程。这里的条件不可以自定义,只可以从下面几个关键词选择:
all all services and daemons ## 所有的服务和进程
faulty enabled but stopped daemons ## 启用但未能启动的服务和进程
off disabled services and daemons ## 禁用的服务和进程
on enabled services and daemons ## 启用的服务和进程
started running daemons ## 已经启动的进程
stopped stopped daemons ## 已经停止的进程
# rcctl ls faulty httpd ntpd
这里httpd和ntpd两个进程已经启用,但是未能启动(意味着管理员有活干了)。
调整pkg_scripts中进程的顺序
pkg_scripts这个变量是用来控制从软件包中安装的进程的。有多个进程的时候,我们有时候需要调整一下它们的顺序.
rcctl order d ## 把指定的进程d移到第一位: rcctl order d d1 d2 ## 把指定的进程d移到d1和d2之前 rcctl order ## 列出当前的顺序
设置进程参数
rcctl set httpd status on ## 应该是和rcctl enable httpd的功能是一样的,我目前没有发现两者的差别 rcctl set ntpd flags -s ## 设置ntpd的flags参数为'-s'