在 CentOS 上编写 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 $?

Script

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

转自于:http://heylinux.com/archives/3364.html

时间: 2024-10-08 19:42:59

在 CentOS 上编写 init.d service script [转]的相关文章

Azure上CentOS上安装LIS (Linux Integration Service)

Azure上虚拟化技术都是采用的Hyper-v,每台Linux虚拟机都安装了LIS(Linux Integration Service).LIS的功能是为VM提供各种虚拟设备的驱动.所以LIS直接影响到VM和底层硬件运行的性能. 在客户有VM各种高性能的处理需求的时候,LIS保证最新版本是非常重要的.本文将介绍如何在CentOS上正确的安装LIS. 1 安装LIS 在以下网站查看最新版的LIS: https://technet.microsoft.com/en-us/windows-server

在CentOS上安装tomcat

先从tomcat网站上下载最新的gz安装包 文件名:apache-tomcat-8.0.8.tar.gz 将文件上传到/usr/local目录中 执行解压缩 tar zxvf apache-tomcat-8.0.8.tar.gz 将目录apache-tomcat-8.0.8命名为tomcat mv apache-tomcat-8.0.8 tomcat 运行/usr/local/tomcat/bin/startup.sh就会启动tomcat 配置自动启动脚本: #!/bin/bash # chkc

在CentOS上简单安装tengine

centos上tengine的一个简易安装流程 环境描述 CentOS release 5.5 (Final) Kernel \r on an \m 安装基础环境 gcc安装 yum -y install gcc yum -y install gcc-c++ 安装pcre yum -y install pcre-devel 安装openssl yum -y install openssl openssl-devel 二.下载proxy_cache插件 cd /opt/tools/tengine/

ASP.NET Core在CentOS上的最小化部署实践

原文:ASP.NET Core在CentOS上的最小化部署实践 引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个Nginx-Powered AspNet Core Web准生产应用. 在开始之前,我们还是重温一下部署原理,正如你所常见的.Net Core 部署图: 在Linux上部署.Net Core App最好的方式是在Linux机器上使用Kestrel 服务在端口5000上支撑web应用: 然后设置Nginx作为反向代理服务器,将输入请求转发给Kestrel服务器,

使用kubeadm在CentOS上搭建Kubernetes1.14.3集群

练习环境说明:参考1 参考2 主机名称 IP地址 部署软件 备注 M-kube12 192.168.10.12 master+etcd+docker+keepalived+haproxy master M-kube13 192.168.10.13 master+etcd+docker+keepalived+haproxy master M-kube14 192.168.10.14 master+etcd+docker+keepalived+haproxy master N-kube15 192.

在CentOS上把MySQL从5.5升级到5.6(转)

http://www.th7.cn/db/mysql/201408/66064.shtml 在CentOS上把MySQL从5.5升级到5.6 摘要:本文记录了在CentOS 6.3上,把MySQL从5.5.28升级到5.6.19的过程. 1. 概述 在我做的一个项目中,最近我对生产服务器上的一系列系统软件进行了升级,包括git.nginx.MySQL和PHP.这篇文章讲的是升级MySQL的过程,其他软件的升级将在其他文章中介绍. 在我加入这个项目之前,网络服务器MySQL已经安装设置好了,我只是

centos 上不了网了

昨天还用的好好的,今天就上不了网了,郁闷,不过,正好是一次学习linux网络配置的好机会,这会已经把它折腾好了,此文就是在linux下面的浏览器中写的! 先检查一下虚拟机中的网络设置是否正常,由于我的本机系统使用的是windows2008,所以只能使用桥接方式来使虚拟机上网了. 再来看看 edit-> virtual network editor...  (并不是我的英语好,而是虚拟机上的英文我翻译不过来,所以就老实一点,照着人家的写吧) 把其它的都删除了,就留下了一个VMnet0,而且还是使用

centos上安装supervisor来管理dotnetcore等应用程序

supervisor 介绍: 这是一款用python编写的进程管理工具,可以守护他管理的所有进程,防止异常退出,以及提供一个可视化的web界面来手动管理,打开关闭重启各种应用,界面如下: 关于在centos上安装supervisor: 1.通过yum安装: yum install supervisor 2.配置supervisor: 我们去用vim编辑/etc/supervisord.conf这个文件,可以看到有很多选项 第一个节点是UnixSocket,是unix进程间通信的,默认开启,后面本

centos上部署openvpn

说明: 目的是实现在家可以访问公司内部局域网内的机器.实现方式是通过在centos上部署openvpn服务, 通过vpn连入内部局域网. 软件包下载:http://build.openvpn.net/downloads/releases/ 参考文档:https://openvpn.net/index.php/open-source/documentation/howto.html 系统环境:centos 6.8 安装包准备: Openssl   lzo   pam  openvpn 安装open