在 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: -
# 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 [转]的更多相关文章
- Azure的CentOS上安装LIS (Linux Integration Service)
Azure上虚拟化技术都是采用的Hyper-v,每台Linux虚拟机都安装了LIS(Linux Integration Service).LIS的功能是为VM提供各种虚拟设备的驱动.所以LIS直接影响 ...
- 在CentOS上使用Nginx和Tomcat搭建高可用高并发网站
目录 目录 前言 创建CentOS虚拟机 安装Nginx 安装Tomcat 安装lvs和keepalived 反向代理 部署网站 搭建数据库 编写网站项目 解决session一致性 注意 参考资料 前 ...
- Centos上的安装openoffice+unoconv+swftools (转)
############################## # swftools的安装 # ############################## 1.安装所需的库和组件 yum ...
- 在 CentOS 上安装和配置 OpenNebula
转自:http://www.aikaiyuan.com/4889.html 我们提到的云计算一般有三种类型:软件即服务(Software as a Service, SaaS),平台即服务(Platf ...
- CentOS上部署Apache、MySQL和PHP
centos上yum安装很方便,下面介绍编译安装的方式. 第一步要在CentOS上安装gcc.g++等开发工具 可以从系统光盘上安装,或者 #yum groupinstall "Develo ...
- SLAM+语音机器人DIY系列:(二)ROS入门——6.编写简单的service和client
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- CentOS上部署JAVA服务【转】
http://www.th7.cn/Program/java/201511/686437.shtml 本文将介绍如何在CentOS上运行Java Web服务,其中将包括如何搭建JAVA运行环境.如何开 ...
- Centos上Apache重启,mysql重启,nginx重启方法
转载:http://www.3lian.com/edu/2012/04-01/24278.html Centos上Apache重启,mysql重启, nginx 重启方法 1.重启 apache se ...
- 在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 ...
随机推荐
- 怎么去掉Xcode工程中的某种类型的警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32
unsigned long numComponents = CGColorGetNumberOfComponents([[UIColor blackColor] CGColor]); 2014年12月 ...
- 20分钟 看图手写的table
<html><body><table width="100%" border="1" cellspacing="0&qu ...
- SpringMvc的Controller singleton synchronized
SpringMvc的controller是singleton的(非线程安全的) - lvyuanj的专栏 - CSDN博客 https://blog.csdn.net/lvyuanj/article/ ...
- MYSQL 表大小限制
MySQL 3.22限制的表大小为4GB.由于在MySQL 3.23中使用了MyISAM存储引擎,最大表尺寸增加到了65536TB(2567 – 1字节).由于允许的表尺寸更大,MySQL数据库的最大 ...
- 2 Modals of necessity
1 情况动词must 和词组have to, need to ,have got to 都表示必须做某事或者要求做某事. need to have to must have got to When ...
- idea打包springboot+maven项目并发布在linux上
2018年11月13日我亲测有效的,很简单的,借鉴博客:https://blog.csdn.net/smilecall/article/details/56288972 第一步:随便建一个maven类 ...
- Codeforces 1154E Two Teams
题目链接:http://codeforces.com/problemset/problem/1154/E 题目大意: 有n个队员,编号1~n,每个人的能力各自对应1~n中的一个数,每个人的能力都不相同 ...
- StringBuilder与String有哪些区别?
System.String具备不可修改性,在程序中这样的特性容易产生性能上的问题.针对这个问题.NET提供的StringBuilder类可以解决类似的问题. String 和 StringBuilde ...
- flask 下载本地文件
下载本地文件就是找到文件路径 调用flask自带的send_file(路径)下载, 并返回 flask: # 下载文件 from flask import send_file@task_mgm.ro ...
- Linux下 rewrite_mod 的配置
以下使用最新的 Ubuntu 16.04 测试; 安装好apache后先确认有没有rewrite模块,大多数情况下是有的:ls /etc/apache2/mods-available |grep re ...