zabbix自启动 2020-03-07 网络 暂无评论 2210 次阅读 ``` #!/bin/sh # chkconfig: 2345 15 95 # description: zabbix_server \ # with some additional features useful for sites of any size, especially busier sites. # DateTime: 2020-03-07 # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 zabbix="/usr/local/zabbix/sbin/zabbix_server" prog=$(basename ${zabbix}) # lockfile=/var/lock/subsys/zabbix_server start() { [ -x ${zabbix} ] || exit 5 echo -n $"Starting $prog: " daemon ${zabbix} retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc ${zabbix} -HUP RETVAL=$? echo } force_reload() { restart } configtest() { ${zabbix} -t } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; status) rh_status ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|configtest}" exit 2 esac ``` 以上是代码,以下是操作过程,用vi编辑后加入自动启动,系统为centos7 ``` cd /etc/rc.d/init.d vi zabbix_server chmod +x zabbix_server chkconfig --add zabbix_server chkconfig --list ``` 如果是zabbix_agentd自启动,则将脚本中的zabbix_server全部替换为zabbix_agentd。 Linux OS 将操作 环境分为以下7个等级,即 0:关机 1:单用户模式(单用户、无网络) 2:无网络支持的多用户模式(多用户、无网络) 3:有网络支持的多用户模式(多用户、有网络) 4:保留,未使用 5:有网络支持有X-Window支持的多用户模式(多用户、有网络、X-Window界面) 6:重新引导系统,即重启 本文转自https://www.cnblogs.com/zmx-721/p/9688243.html 并进行了相应修改。 附录 /var/lock/subsys作用 关于/var/lock/subsys目录 总的来说,系统关闭的过程(发出关闭信号,调用服务自身的进程)中会检查/var/lock/subsys下的文件,逐一关闭每个服务,如果某一运行的服务在/var/lock/subsys下没有相应的选项。在系统关闭的时候,会像杀死普通进程一样杀死这个服务。 通过察看/etc/rc.d/init.d下的脚本,可以发现每个服务自己操纵时都会去查看/var/lock/subsys下相应的服务。 很多程序需要判断是否当前已经有一个实例在运行,这个目录就是让程序判断是否有实例运行的标志,比如说xinetd,如果存在这个文件,表示已经有xinetd在运行了,否则就是没有,当然程序里面还要有相应的判断措施来真正确定是否有实例在运行。通常与该目录配套的还有/var/run目录,用来存放对应实例的PID,如果你写脚本的话,会发现这2个目录结合起来可以很方便的判断出许多服务是否在运行,运行的相关信息等等。 实际上,判断是否上锁就是判断这个文件,所以文件存在与否也就隐含了是否上锁。而这个目录的内容并不能表示一定上锁了,因为很多服务在启动脚本里用touch来创建这个加锁文件,在系统结束时该脚本负责清除锁,这本身就不可靠(比如意外失败导致锁文件仍然存在),我在脚本里一般是结合PID文件(如果有PID文件的话),从PID文件里得到该实例的PID,然后用ps测试是否存在该PID,从而判断是否真正有这个实例在运行,更加稳妥的方法是用进程通讯了,不过这样的话单单靠脚本就做不到了。 转自https://www.cnblogs.com/zsmynl/p/3602021.html 标签: zabbix, 自启动 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。