CentOS6/7 配置守护进程

CentOS6.xCentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式 。
一、相关命令
通过initctl help可以查看相关命令
[root@localhost ~]# initctl helpJob commands:startStart job.stopStop job.restartRestart job.reloadSend HUP signal to job.statusQuery status of job.listList known jobs.Event commands:emitEmit an event.Other commands:reload-configurationReload the configuration of the init daemon.versionRequest the version of the init daemon.log-priorityChange the minimum priority of log messages from the init daemonusageShow job usage message if available.helpdisplay list of commandsFor more information on a command, try `initctl COMMAND --help'.二、自己配置一个
在/etc/init/文件夹中新建一个testserver.conf配置文件 。
通过exec执行发布出来的程序可执行文件 。通过设置respawn让程序反复启动 。
start on runlevel [2345]stop on runlevel [!2345]respawnexec /usr/local/src/testserver/testserver然后启动
initctl reload-configurationinitctl listinitctl start testserver通过initctl list即可看程序是不是处于running启动状态 。
[root@localhost ~]# initctl listvmware-tools start/runningrc stop/waitingtty (/dev/tty3) start/running, process 3024tty (/dev/tty2) start/running, process 3022tty (/dev/tty6) start/running, process 3033tty (/dev/tty5) start/running, process 3028tty (/dev/tty4) start/running, process 3026plymouth-shutdown stop/waitingtestserver start/running, process 4157control-alt-delete stop/waitingrcS-emergency stop/waitingreadahead-collector stop/waitingkexec-disable stop/waitingquit-plymouth stop/waitingrcS stop/waitingprefdm start/running, process 3017init-system-dbus stop/waitingck-log-system-restart stop/waitingreadahead stop/waitingck-log-system-start stop/waitingsplash-manager stop/waitingstart-ttys stop/waitingreadahead-disable-services stop/waitingck-log-system-stop stop/waitingrcS-sulogin stop/waitingserial stop/waiting可以看到其处于启动状态,现在守护进程已经设置成功 。
另外,配置文件中可以通过script ... end script执行脚本 。举个例子
start on runlevel [2345]stop on runlevel [!2345]scriptecho “test~~~~~” >>/tmp/test.txtend scriptCentOS7.xCentos7中可以通过systemd配置守护进程 。
一、Unit的含义
systemd可以管理所有系统资源,不同资源统称为 Unit,一共分为12种:
Service unit:系统服务Target unit:多个unit构成一个组Device unit:硬件设备Mount unit:文件系统的挂载点Automount unit: 自动挂载点Path unit:文件或路径Scope unit:不是由Systemd启动的外部进程Slice unit:进程组Snapshot unit:Systemd快照,可以切回某个快照Socket unit:进程间通信的socketSwap unit:swap文件Timer unit:定时器二、Unit管理常用命令(主要针对service)
# 开机自启动systemctl enable nginx# 关闭自启动systemctl disable nginx# 服务状态systemctl status nginx# 服务重启systemctl restart nginx# 杀死一个服务systemctl kill nginx# 显示已启动的服务systemctl list-units --type=service【CentOS6/7 配置守护进程】三、Unit配置文件
每一个Unit都有一个配置文件,用于告诉系统如何启动Unit,systemd默认从 /etc/systemd/system/ 目录读取配置文件,
Unit配置文件目录主要有三个:
/lib/systemd/system/run/systemd/system/etc/systemd/system四、Unit服务配置
每个服务以.service后缀,一般会分为3部分:[Unit],[Service],[Install],具体以nginx服务为例:
[Unit]Description=nginx - high performance web serverAfter=network.target remote-fs.target nss-lookup.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.confExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s stop#Restart配置可以在进程被kill掉之后,让systemctl产生新的进程,避免服务挂掉Restart=on-failureRestartSec=30[Install]WantedBy=multi-user.target

经验总结扩展阅读