编写linux服务启动脚本

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值