您的位置:首页 > 运维架构 > Linux

编写linux服务启动脚本

2016-05-19 22:42 609 查看
1、编写服务脚本所用到的执行程序,此处编写一个python脚本文件myd,放置在/usr/sbin下,脚本内容文件如下:

<pre name="code" class="html">#!/usr/bin/env python
import os
from scapy.all import *
pid= os.getpid()
f = open('/var/run/myd.pid', 'w')
f.write(str(pid)+ "\n")
f.close()
srloop(IP(dst='192.168.0.1')/ICMP())



2、编写服务脚本myd,放在/etc/init.d/目录下

<pre name="code" class="html">#!/bin/bash
#
# myd		Start up the myd server daemon
#
# chkconfig: 2345 71 71
# description:  This service starts up the myd server daemon.
#
# processname: myd
# pidfile: /var/run/myd.pid

### BEGIN INIT INFO
# Provides: myd
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start up the myd server daemon
# Description:  This service starts up the OpenSSH server daemon.
### END INIT INFO

# source function library
. /etc/rc.d/init.d/functions

RETVAL=0
prog="myd"

# Some functions to make the below more readable
MYD="/usr/sbin/myd"
PID_FILE=/var/run/myd.pid
exec="python /usr/sbin/myd"
runlevel=$(set -- $(runlevel); eval "echo \$$#" )

start()
{
[ -x $MYD ] || exit 5
MYDRUNNING=0
if [ -f "$PID_FILE" ]; then
MYDPID=`cat "$PID_FILE" 2>/dev/null`
if [ -n "$MYDPID" ] ; then
MYDRUNNING=1
fi
fi

if [ $MYDRUNNING = 1 ] && [ $? = 0 ]; then
# already running, do nothing
action $"Starting $prog: " /bin/true
RETVAL=0
else
# prepare for start
echo -n $"Starting $prog: "
$MYD &
RETVAL=$?

if [ $RETVAL -ne  0 ]; then
failure
else
success
fi
fi
echo
return $RETVAL
}

stop()
{
echo -n $"Stopping $prog: "
killproc -p $PID_FILE
RETVAL=$?
echo
}

reload()
{
echo -n $"Reloading $prog: "
killproc -p $PID_FILE $SSHD -HUP
RETVAL=$?
echo
}

restart() {
stop
start
}

case "$1" in
start)
start
;;
stop)
rm -f $lockfile
stop
;;
restart)
restart
;;
status)
status -p $PID_FILE myd-daemon
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
RETVAL=2
esac
exit $RETVAL


3、执行service命令检验

<pre name="code" class="html">[root@localhost init.d]# service myd start
正在启动 myd:                                             [确定]


<pre name="code" class="html">[root@localhost ~]# service myd status
myd-daemon (pid  5658) 正在运行...



<pre name="code" class="html">[root@localhost ~]# service myd stop
停止 myd:                                                 [确定]


[root@localhost ~]# service myd status
myd-daemon 已停


4、通过chkconfig命令设置开机启动运行

[root@localhost ~]# chkconfig --level 35 myd on
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: