在 CentOS 6 上编写 init.d service script设置开机启动

 背景:

之前编写了一些脚本,下载了一些开源软件,想把它们做成系统服务,通过 service your_prog_name start 这样的方式来后台运行,并在开机时自动启动。
在了解了 daemon 命令之后,我发现使用它来编写这样的脚本非常方便,相关示例如下:

具体配置:
只需要将 your_prog_name 替换为你真正的脚本或执行文件的名称,将 prog_path 设置为具体的路径,以及其它的部分参数如执行用户 prog_user,以及 proc_conf 与 options 等即可。
# vim /etc/init.d/your_prog_name


#!/bin/bash # # chkconfig: - 98 02 # description: Starts and stops the your_prog_name daemon. . /etc/init.d/functions prog_name="your_prog_name" prog_path="/path/to/${prog_name}" prog_user="your_prog_user" prog_conf="/path/to/your_prog_conf" pidfile="/path/to/${prog_name}.pid" options="-c ${prog_conf}" lockfile="/var/lock/subsys/${prog_name}" [ -x "${prog_path}" ] || exit 1 [ -r "${prog_conf}" ] || exit 1 start(){ echo -n $"Starting ${prog_name}: " daemon --user ${prog_user} ${prog_path} ${options} retval=$? prog_pid=$(pidof ${prog_path}) [ ! -z "${prog_pid}" ] && echo ${prog_pid} > ${pidfile} echo [ $retval -eq 0 ] && touch ${lockfile} return $retval } stop(){ echo -n $"Stopping ${prog_name}: " killproc -p ${pidfile} ${prog_name} retval=$? echo [ $retval -eq 0 ] && rm -f ${lockfile} return $retval } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 1 start ;; status) status -p ${pidfile} ${prog_name} ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 2 esac exit $?

# chmod +x /etc/init.d/your_prog_name
# chkconfig your_prog_name on

来源:https://www.cnblogs.com/Mrhuangrui/p/4556440.html

评论

此博客中的热门博文

电信家庭云路由器插件免费提速宽带至500M,上行50M

iOS任意版本号APP下载(含itunes 12.6.5.3 最后带AppStore版本)

你真的会使用XMLHttpRequest吗?

awesome-resume 求职简历模板和例句

硬盘功耗要多少及配套电源选择依据(功率多少瓦)

Windows 10新增云端下载系统新功能:无U盘重装

PHP使用SnowFlake算法生成唯一ID

一些免费的云资源

Java 认证考试 OCAJP 经验总结

蜗牛星际小主机百兆网卡加电阻改千兆问题