Skip to content

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'
Avatar

专业Linux/Unix/Windows系统管理员,开源技术爱好者。对操作系统底层技术,TCP/IP协议栈以及信息系统安全有强烈兴趣。电脑技术之外,则喜欢书法,古典诗词,数码摄影和背包行。

Sidebar