我们公司的项目基本上都是安装在工控机上的,要能做到开机启动。昨天项目封包安装后要设置开机启动,下面说明如何设置开机启动的。
一、chkconfig命令
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。
chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。
--level<等级代号>
指定读系统服务要在哪一个执行等级中开启或关毕
-
0:表示关机
-
1:单用户模式
-
2:无网络连接的多用户命令行模式
-
3:有网络连接的多用户命令行模式
-
4:不可用
-
5:带图形界面的多用户模式
-
6:重新启动
二、设置脱敏项目的开机启动
安装包创建tmd.sh脚本
# chkconfig: 2345 10 90
# description: 总行服务器 监听8766端口
# 脚本第二行必须设置,解释如下:
# “#chkconfig: 2345 10 90” 表示在2/3/4/5运行级别启动,启动序号(S10),关闭序号(K90)
# return value
RETVAL=0
# 运行程序位置
server_dir="/sfwz/tuomin/service"
# 程序运行后生成pid文件,内容为程序的进程号
server_pid="$server_dir/run.pid"
# 实际运行程序名
server_name="tm"
#当前路径
path=$(pwd)
start() {
echo -n "Starting ${server_name}:"
PIDS=`ps -ef |grep ${server_name} api|grep -v grep | awk '{print $2}'`
if [ "$PIDS" != "" ]; then
echo "${server_name} is runing!"
else
MYPIDS=`ps -ef |grep mysqld_safe |grep -v grep | awk '{print $2}'`
if [ "$MYPIDS" == "" ]; then
service mysql start
fi
export LD_LIBRARY_PATH=/sfwz/tuomin/clidriver/lib
# 进入项目目录并启动
cd $server_dir
nohup ./tuomin api -c config/settings.yml >> /tmp/tuomin.log 2>&1 &
echo $! > $server_pid
# 回到当前目录
cd $path
echo "ok"
fi
}
stop(){
echo -n "Stopping ${server_name}:"
if [ ! -f $server_pid ];then
echo "PID file "${server_pid}" does not exist"
echo "Is ${server_name} running?"
else
kill -9 $(cat $server_pid)
rm -f $server_pid
echo "ok"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $RETVAL
添加服务并启动
# 安装脚本中拷贝tmd.sh到服务目录
cp tmd.sh /etc/rc.d/init.d/tmd
# 添加服务
chkconfig --add tmd
# 设置服务等级
chkconfig --level 345 tmdon
# 启动服务
service tmd start
三、注意事项
1)增加mysql启动判断
MYPIDS=`ps -ef |grep mysqld_safe |grep -v grep | awk '{print $2}'`
if [ "$MYPIDS" == "" ]; then
service mysql start
fi
开始在启动中未加入mysql启动脚本,mysql启动序号在tmd后面。所以增加了判断mysql是否启动的判断。
2)DB2环境变量设置
export LD_LIBRARY_PATH=/sfwz/tuomin/clidriver/lib
我们使用db2数据库,在/etc/profile中设置环境变量。但开机启动中环境变量还没起作用。所以在start脚本中增加了环境变量设置。
3)项目路径脚本问题
我们使用golang语言开发的脱敏系统,脚本启动一般都是相对路径。如果设置绝对路径启动脚本,程序中有一些涉及文件操作的部分会报错。
# 进入项目目录并启动
cd $server_dir
nohup ./tuomin api -c config/settings.yml >> /tmp/tuomin.log 2>&1 &
echo $! > $server_pid
# 回到当前目录
cd $path
所以在启动脚本中cd进入目录运行。
上面就是整个设置开机启动及相应脚本,大家可以对脚本进行修改。设置自己项目的开机启动。
原文始发于微信公众号(数据安全治理技术):Linux下如何把项目设置为开机启动服务
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论