linux agent 自重启脚本

本文介绍如何在CentOS系统中创建自定义服务脚本并实现自动启动。包括脚本编写、设置权限、添加系统服务及配置自启动等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
#
# chkconfig: - 57 75
# description: test service
#!/bin/sh
JAVA_OPTS="-Duser.timezone=GMT+8 -server -Xms512m -Xmx512m -Xloggc:agent.log"

APP_LOG=/home/monitor/alert-agent/

APP_HOME=/home/monitor/alert-agent/

APP_MAIN=com.upyoo.agent.AgentServer

CLASSPATH=$APP_HOME/classes

for tradePortalJar in "$APP_HOME"/*.jar
do
   CLASSPATH="$CLASSPATH":"$tradePortalJar"
done

tradePortalPID=0
 
getTradeProtalPID(){

    javaps=`ps -ef|grep java | awk '{ if($8=="./jre/bin/java") print $2}'`
if [ -n  "$javaps" ]; then
        tradePortalPID=$javaps
else
        tradePortalPID=0
    fi
}
start() {
	getTradeProtalPID
    echo "======================================================================================"
    if [ $tradePortalPID -ne 0 ]; then
        echo "$APP_MAIN already started(PID=$tradePortalPID)"
        echo "======================================================================================"
    else
        echo -n "Starting $APP_MAIN"
        cd /home/monitor/alert-agent
         ./start.sh
        getTradeProtalPID
        if [ $tradePortalPID -ne 0 ]; then
            echo "(PID=$tradePortalPID)...[Success]"
            echo "======================================================================================"
        else
            echo "[Failed]"
            echo "======================================================================================"
        fi
    fi
echo 3 >> /tmp/sunyu.txt
}

stop() {
echo "Stopping test ..."
echo 2 >> /tmp/sunyu.txt
}

# See how we were called.
case "$1" in
  start)
start
;;
  stop)
stop
;;
  restart|force-reload)
stop
start
;;
  *)
echo $"Usage: $0 {start|stop|restart|force-reload}"
exit 2
esac

CentOS下将自定义脚本制作成系统服务自动启动,Shell/批处理代码片段分享, - 脚本分享网
http://www.sharejs.com/codes/shell/6702

1.编写自己的服务脚本
进入系统服务脚本目录:
cd /etc/rc.d/init.d/
vi test
内容如下:

#!/bin/bash
#
# chkconfig: - 57 75
# description: test service
 
start() {
echo "Starting test ..."
echo 3 >> /tmp/sunyu.txt
}
 
stop() {
echo "Stopping test ..."
echo 2 >> /tmp/sunyu.txt
}
 
# See how we were called.
case "$1" in
  start)
start
;;
  stop)
stop
;;
  restart|force-reload)
stop
start
;;
  *)
echo $"Usage: $0 {start|stop|restart|force-reload}"
exit 2
esac

要注意的是, 文件的格式要是 unix. 可以通过 VI 命令 :set ff? 查看.如果不是, 执行的时候会报错:
/bin/bash^M: bad interpreter

VI 中保存
将该脚本设置为可执行:
chmod +x test

可以看到. 启动服务的时候会输出一行字. 然后往 /tmp/sunyu.txt 中写入一个 3. 关闭时会往文件中写入一个 2 如果该文件不存在, 请先行自己在 /tmp 下新建: 
cd /tmp/
touch sunyu.txt
然后将文件设置为可写:
chmod 777 sunyu.txt

2.添加系统服务
chkconfig --add test

3.系统服务自启动
chkconfig --level 345 test on

4.测试
service test start
然后查看 /tmp/sunyu.txt 中的内容: cat /tmp/sunyu.txt
service test stop
然后再查看上面文件中的内容

重启:
reboot
再查看 /tmp/sunyu.txt 文件中的内容.如果看到变化表示服务添加成功.
此例通过后, 可在脚本中的 start stop 中做自己想做的其它事了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不止鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值