背景:
之前编写了一些脚本,下载了一些开源软件,想把它们做成系统服务,通过 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: -
# 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
[ -r "${prog_conf}" ] || exit 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 ] && touch ${lockfile}
return $retval
} stop(){
echo -n $"Stopping ${prog_name}: "
killproc -p ${pidfile} ${prog_name}
retval=$?
echo
[ $retval -eq ] && rm -f ${lockfile}
return $retval
} case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep
start
;;
status)
status -p ${pidfile} ${prog_name}
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit
esac
exit $?

Script

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

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

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

  1. Azure的CentOS上安装LIS (Linux Integration Service)

    Azure上虚拟化技术都是采用的Hyper-v,每台Linux虚拟机都安装了LIS(Linux Integration Service).LIS的功能是为VM提供各种虚拟设备的驱动.所以LIS直接影响 ...

  2. 在CentOS上使用Nginx和Tomcat搭建高可用高并发网站

    目录 目录 前言 创建CentOS虚拟机 安装Nginx 安装Tomcat 安装lvs和keepalived 反向代理 部署网站 搭建数据库 编写网站项目 解决session一致性 注意 参考资料 前 ...

  3. Centos上的安装openoffice+unoconv+swftools (转)

    ############################## #    swftools的安装     # ############################## 1.安装所需的库和组件 yum ...

  4. 在 CentOS 上安装和配置 OpenNebula

    转自:http://www.aikaiyuan.com/4889.html 我们提到的云计算一般有三种类型:软件即服务(Software as a Service, SaaS),平台即服务(Platf ...

  5. CentOS上部署Apache、MySQL和PHP

    centos上yum安装很方便,下面介绍编译安装的方式. 第一步要在CentOS上安装gcc.g++等开发工具 可以从系统光盘上安装,或者 #yum groupinstall "Develo ...

  6. SLAM+语音机器人DIY系列:(二)ROS入门——6.编写简单的service和client

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  7. CentOS上部署JAVA服务【转】

    http://www.th7.cn/Program/java/201511/686437.shtml 本文将介绍如何在CentOS上运行Java Web服务,其中将包括如何搭建JAVA运行环境.如何开 ...

  8. Centos上Apache重启,mysql重启,nginx重启方法

    转载:http://www.3lian.com/edu/2012/04-01/24278.html Centos上Apache重启,mysql重启, nginx 重启方法 1.重启 apache se ...

  9. 在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 ...

随机推荐

  1. Effective java 43返回零长度的数组或者集合而不是null

  2. 项目笔记-SC01

    项目启动已有两周,从分析需求到系统设计,文档性工作比较多,只是文档参考比较少,相对的标准就不好界定了. 计划开发时间理论上是按部就班的,没什么变化,可能真正进入开发阶段才会遇到一些问题吧,有些问题就是 ...

  3. Django 内的母版-子html规则

    一.母版 在实际应用中,在开发一个网站时,从首页到主页.到目录页,等等!有时候,我们大部分基础网页头.边框.侧边框.基础css.js等复用性很高,如果每一个html都要独立去写的话,就太麻烦了. 而把 ...

  4. pip Read timed out 和 pip 源

    解决方法,设置超时时间 pip --default-timeout=100 install -U Pillow 安装时指定源(--index-url) #例如安装scipy时使用豆瓣的源 pip in ...

  5. phantomjs 了解

    转自:http://www.cnblogs.com/lei0213/ PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎.它原生支持多种web 标准:DOM 操作,CSS选择器,JS ...

  6. [转帖]BRD、MRD 和 PRD

    来源: https://www.zhihu.com/question/19655491 BRD 商业需求文档 Business Requirement Document MRD 市场需求文档 Mark ...

  7. 在Laravel中使用数据库事务以及捕获事务失败后的异常

    Description 在Laravel中要想在数据库事务中运行一组操作,则可以在 DB facade 中使用 transaction 方法.如果在事务的闭包内抛出异常,事务将会被自动还原.如果闭包运 ...

  8. Day 4-5 序列化 json & pickle &shelve

    序列化: 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. 反序列化: 把字符转成内存里的数据类型. 用于序列化的两个模块.他 ...

  9. PreparedStatement和Statement

    1 . PreparedStatement 接口继承 Statement , PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象. 2  ...

  10. Quartz框架学习(1)—核心层次结构

    Quartz框架学习 Quartz(任务调度)框架的核心组件: job:任务.即任务调度行为中所要调度的对象. trigger:触发器.是什么促使了一个任务的调度?当然是时间.这也算事件驱动类型程序. ...