[DevOps] 如何建立新的Linux系统服务(或以其他用户执行)

以下脚本该置于/etc/init.d 之下,权限让root有'x'(执行), 轮入以下资料:
DAEMON_PATH替换为要跑的脚本的位置
DAEMON 脚本全名
USER 用什么用户名来跑脚本
CONFIGFILE 设定档名称
DAEMONOPTS 执行脚本时要加入的指令
NAME 系统服务名称

DESC 描述


代码:

#!/bin/bash
# myapp daemon
# chkconfig: 345 20 80
# description: myapp daemon
# processname: myapp

DAEMON_PATH=<DIRECTORY_DAEMON_PLACED>
DAEMON=<SCRIPT_NAME>

# Specify the user name
USER=<USER_NAME>

# Specify an alternate config file).
CONFIGFILE="/etc/example.conf"

# Additional options that are passed to the Daemon.
DAEMONOPTS="-c $CONFIGFILE"

NAME=<APP_NAME>
DESC=<APP_NAME>
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
COMMAND="su $USER -c '"$DAEMON_PATH"/"$DAEMON" "$DAEMONOPTS"' > /dev/null 2>&1 &"

case "$1" in
start)
	printf "%-50s" "Starting $NAME..."
	#cd $DAEMON_PATH
	echo "Saving PID" $PID " to " $PIDFILE

        if [ ! -z "LC_CTYPE" ]; then
            echo "Setting LC_CTYPE env variable to be en_US.utf-8";export LC_CTYPE="en_US.utf-8"
        fi

        eval $COMMAND
        PID=$!

        if [ -z $PID ]; then
            printf "%s\n" "Fail"
        else
            echo $PID > $PIDFILE
            printf "%s\n" "Ok"
        fi
;;
status)
        printf "%-50s" "Checking $NAME..."
        if [ -f $PIDFILE ]; then
            PID=`cat $PIDFILE`
            if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
                printf "%s\n" "Process dead but pidfile exists"
            else
                echo "Running"
            fi
        else
            printf "%s\n" "Service not running"
        fi
;;
stop)
        printf "%-50s" "Stopping $NAME"
            PID=`cat $PIDFILE`
            cd $DAEMON_PATH
        if [ -f $PIDFILE ]; then
            kill -TERM $PID
            printf "%s\n" "Ok"
            rm -f $PIDFILE
        else
            printf "%s\n" "pidfile not found"
        fi
;;

restart)
  	$0 stop
  	$0 start
;;

*)
        echo "Usage: $0 {status|start|stop|restart}"
        exit 1
esac


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值