# Daemon control and mangement system (rcctl) The rcctl utility can enable or disable a base system service or a base system or package daemon in rc.conf.local or display its configuration and status. For a daemon, it can also change the command line arguments, the user to run as, the rc.d action timeout or call its rc.d daemon control script. The /etc/rc.d directory contains shell scripts to start, stop, and reconfigure daemon programs (“services”). **Services installed from packages may be started at boot time in the order specified by the pkg_scripts variable from rc.conf the order will be reversed during shutdown. Services comprising OpenBSD base are started by rc.** The options are as follows: -d........Setting this option will print the function names as they are called and prevent the rc.subr framework from redirecting stdout and stderr to /dev/null. This is used to allow debugging of failed actions. -f.........This option only affects the start action. It will forcibly start the daemon whatever value daemon_flags is set to. If daemon_flags is set to “NO”, execution will continue with the script's own defaults unless other flags are specified. Each such script responds to the following actions: start...........-Start the service, if not already running.\\ stop...........-Stop the service.\\ reload.......-Tell the daemon to reload its configuration.\\ restart.......-Perform a stop, then a start.\\ check.........-Return 0 if the daemon is running or 1 if it is not.\\ ## Run a process as system daemon * This topic shows how to run a simple process as priviledged system daemon which enable it be started/stopped/enabled by rcctl daemon control system * Here we'll use hopm process to explain how to launch it into system daemon. * For this to work , we'll first install hopm as user hopm, group hopm as usual refer more of it [hopm](/Hopm.Install) * Then we'll create a rc.d script in /etc/rc.d dir by name of "hopm" * Then We'll lauch the process by calling "rcctl start hopm" with root priviledge ## Creating rc.d file for process (hopm) Now give following commands - doas cd /etc/rc.d doas nano hopm In nano editor add the following code daemon should be set equal to "/path/to/daemon" #!/bin/ksh daemon="/home/hopm/hopm/bin/hopm" . /etc/rc.d/rc.subr rc_cmd $1 save the file and run the following command. $ doas rcctl start hopm $ doas rcctl enable hopm First command will start the processs(hopm) with root priviledge system daemon and second command will enable it to be restarted automatically at booting up.