Ubuntu 启动停止脚本
/etc/init.d 目录下的开机启动脚本
1.
more redis_8010
#/bin/sh
#Configurations injected by install_server below....
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_8010.pid
CONF="/etc/redis/8010.conf"
REDISPORT="8010"
###############
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
2.
在/ect/rc0--6.d/目录下
lrwxrwxrwx 1 root root 20 Aug 1 14:30 K20redis_8010 -> ../init.d/redis_8010
都是init.d目录下文件的软连接
会在关机级别停止服务
如 K20rsync -> ../init.d/rsync
more /etc/init.d/rsync
#! /bin/sh
### BEGIN INIT INFO
# Provides: rsyncd
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $named
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: fast remote file copy program daemon
# Description: rsync is a program that allows files to be copied to and
# from remote machines in much the same way as rcp.
# This provides rsyncd daemon functionality.
### END INIT INFO
set -e
# /etc/init.d/rsync: start and stop the rsync daemon
DAEMON=/usr/bin/rsync
RSYNC_ENABLE=false
RSYNC_OPTS=''
RSYNC_DEFAULTS_FILE=/etc/default/rsync
RSYNC_CONFIG_FILE=/etc/rsyncd.conf
RSYNC_PID_FILE=/var/run/rsync.pid
RSYNC_NICE_PARM=''
RSYNC_IONICE_PARM=''
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
if [ -s $RSYNC_DEFAULTS_FILE ]; then
. $RSYNC_DEFAULTS_FILE
case "x$RSYNC_ENABLE" in
xtrue|xfalse) ;;
xinetd) exit 0
;;
*) log_failure_msg "Value of RSYNC_ENABLE in $RSYNC_DEFAULTS_FILE must be either
'true' or 'false';"
log_failure_msg "not starting rsync daemon."
exit 1
;;
esac
case "x$RSYNC_NICE" in
x[0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";;
x1[0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";;
x) ;;
*) log_warning_msg "Value of RSYNC_NICE in $RSYNC_DEFAULTS_FILE must be a value b
etween 0 and 19 (inclusive);"
log_warning_msg "ignoring RSYNC_NICE now."
;;
esac
case "x$RSYNC_IONICE" in
x-c[123]*) RSYNC_IONICE_PARM="$RSYNC_IONICE";;
x) ;;
*) log_warning_msg "Value of RSYNC_IONICE in $RSYNC_DEFAULTS_FILE must be -c1, -c
2 or -c3;"
log_warning_msg "ignoring RSYNC_IONICE now."
;;
esac
fi
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
rsync_start() {
if [ ! -s "$RSYNC_CONFIG_FILE" ]; then
log_failure_msg "missing or empty config file $RSYNC_CONFIG_FILE"
log_end_msg 1
exit 0
fi
# See ionice(1)
if [ -n "$RSYNC_IONICE_PARM" ] && [ -x /usr/bin/ionice ] &&
/usr/bin/ionice "$RSYNC_IONICE_PARM" true 2>/dev/null; then
/usr/bin/ionice "$RSYNC_IONICE_PARM" -p$$ > /dev/null 2>&1
fi
if start-stop-daemon --start --quiet --background \
--pidfile $RSYNC_PID_FILE --make-pidfile \
$RSYNC_NICE_PARM --exec $DAEMON \
-- --no-detach --daemon --config "$RSYNC_CONFIG_FILE" $RSYNC_OPTS
then
rc=0
sleep 1
if ! kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
log_failure_msg "rsync daemon failed to start"
rc=1
fi
else
rc=1
fi
if [ $rc -eq 0 ]; then
log_end_msg 0
else
log_end_msg 1
rm -f $RSYNC_PID_FILE
fi
} # rsync_start
case "$1" in
start)
if "$RSYNC_ENABLE"; then
log_daemon_msg "Starting rsync daemon" "rsync"
if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
log_progress_msg "apparently already running"
log_end_msg 0
exit 0
fi
rsync_start
else
if [ -s "$RSYNC_CONFIG_FILE" ]; then
[ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_F
ILE, not starting..."
fi
fi
;;
stop)
log_daemon_msg "Stopping rsync daemon" "rsync"
start-stop-daemon --stop --quiet --oknodo --pidfile $RSYNC_PID_FILE
log_end_msg $?
rm -f $RSYNC_PID_FILE
;;
reload|force-reload)
log_warning_msg "Reloading rsync daemon: not needed, as the daemon"
log_warning_msg "re-reads the config file whenever a client connects."
;;
restart)
set +e
if $RSYNC_ENABLE; then
log_daemon_msg "Restarting rsync daemon" "rsync"
if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
start-stop-daemon --stop --quiet --oknodo --pidfile $RSYNC_PID_FILE || true
sleep 1
else
log_warning_msg "rsync daemon not running, attempting to start."
rm -f $RSYNC_PID_FILE
fi
rsync_start
else
if [ -s "$RSYNC_CONFIG_FILE" ]; then
[ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_F
ILE, not starting..."
fi
fi
;;
status)
status_of_proc -p $RSYNC_PID_FILE "$DAEMON" rsync
exit $? # notreached due to set -e
;;
*)
echo "Usage: /etc/init.d/rsync {start|stop|reload|force-reload|restart|status}"
exit 1
esac
exit 0
ohujha@dev-imp842-v-o:/etc/rc0.d$
Ubuntu 启动停止脚本的更多相关文章
- Linux Oracle服务启动&停止脚本与开机自启动
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...
- Linux Oracle服务启动&停止脚本与开机自启动[转]
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...
- 【转】Linux Oracle服务启动&停止脚本与开机自启动
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设置相关参数,首先先介 ...
- redis 启动停止脚本
redis 启动停止脚本,该redis需要密码登录,如没有密码,去掉stop函数里的 -a #!/bin/sh # #chkconfig: 2345 80 90 # Simple Redis init ...
- (转)Linux Oracle服务启动&停止脚本与开机自启动
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...
- SpringBoot项目快速启动停止脚本
SpringBoot项目快速启动停止脚本 1.在jar包同级目录下,创建 app.sh #!/bin/bash appName=`ls|grep .jar$` if [ -z $appName ] t ...
- Ubuntu启动停止在checking battery state...
Ubuntu在“checking battery state...”处停止了,出现这种现象的原因可能有很多种.笔者遇到的是其中的一种. 情景描述: 笔者此前将Ubuntu的图形启动方式修改为了字符界面 ...
- win nginx + php bat启动/停止脚本
启动脚本 @echo offREM Windows 下无效REM set PHP_FCGI_CHILDREN=5 REM 每个进程处理的最大请求数,或设置为 Windows 环境变量set PHP_F ...
- 微服务linux启动停止脚本
# 停止脚本#!/bin/bash #其他服务停止脚步可以通过修改APP_MAIN参数即可 APP_MAIN=com.idoipo.infras.eureka.center.Application t ...
随机推荐
- iOS的runtime(转)
1. 什么是runtime 运行时刻是指一个程序在运行(或者在被执行)的状态.也就是说,当你打开一个程序使它在电脑上运行的时候,那个程序就是处于运行时刻.在一些编程语言中,把某些可以重用的程序或者实例 ...
- HDU1004 查气球
Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- Windows下安装Cygwin及包管理器apt-cyg(转)
本文为转载文章: http://www.2cto.com/os/201212/176551.html Cygwin可以在Windows下使用unix环境Bash和各种功能强大的工具,对于Linux管理 ...
- 家族(codevs 1073)
题目描述 Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 规定:x和y是亲戚,y和z是亲戚,那么x和 ...
- git linux
第一节 GIT最初是由Linus Benedict Torvalds为了更有效地管理Linux内核开发而创立的分布式版本控制软件,与常用的版本控制工具如CVS.Subversion不同,它不必服务器端 ...
- SQL 函数
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...
- 查看nginx版本号
# ./nginx -v Tengine version: Tengine/ (nginx/)
- Java Hour 51 CheckStyle
Plan List: 1 mysql 相关 2 java code style 安装体验 1 直接从eclipse install new software 安装,莫名奇妙失败,提示为缺少依赖项. 这 ...
- Java Hour 25 Packages
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 25 Hours. Packages Programs are organiz ...
- M方法和D方法的区别
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...