CentOS7 uwsgi重启(通过shell脚本获取进程号并kill)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7 uwsgi重启(通过shell脚本获取进程号并kill)相关的知识,希望对你有一定的参考价值。
参考技术A uWSGI 通过 xxx.ini 启动后会在相同目录下生成一个 xxx.pid 的文件,里面只有一行内容是 uWSGI 的主进程的进程号。启动:
uwsgi --ini xxx.ini
重启:
uwsgi --reload xxx.pid
停止:
uwsgi --stop xxx.pid
以上是当前网上对于uwsgi重启操作的最常见的描述,但是笔者通过ini文件启动时发现并没有生成xxx.pid文件。于是自然的想法是通过shell脚本获取进程号并进行kill操作,脚本如下:
获取进程号的命令需要包含在``或$()之间,笔者在此过程中遇到过两个问题,描述如下:
中变量未加双引号,加上双引号该问题解决。
shell脚本定时重启tomcat
crond 是linux用来定期执行程序的命令,我们通过crond来定期执行shell脚本重启tomcat。下面我以CentOS release 6.3(版本查看cat /etc/issue)为例详细描述一下操作步骤:
1、编写shell脚本
vi restart_cat.sh
#!/bin/sh
. /etc/profile
pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk 'print $2'`
dat=`date '+%Y-%m-%d %H:%M:%S'`
echo $dat
echo $pid
if [ -n "$pid" ]
then
echo ===========shutdown================
/root/tomcat/apache-tomcat-7.0.82/bin/shutdown.sh
sleep 1
pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk 'print $2'`
if [ -n "$pid" ]
then
sleep 1
echo ========kill tomcat==============
kill -9 $pid
fi
sleep 1
echo ===========startup.sh==============
/root/tomcat/apache-tomcat-7.0.82/bin/startup.sh
else
echo ===========startup.sh==============
/root/tomcat/apache-tomcat-7.0.82/bin/startup.sh
fi
2、编辑crontab
crontab -e
如何设定定时时间详见如下描述:
示例:
0 2 * * * /root/restart_cat.sh >> /root/restart_cat.log 每天2点执行/root/restart_cat.sh脚本并把执行日志追加到/root/restart_cat.log文件中
3、重启crond
service crond stop 关闭
service crond start 启动
service crond restart 重启
4、查看定期执行的命令
crontab -l
到此我们已经成功创建了定时任务。
为创建的脚本添加权限:
chmod +x /root/restart_cat.sh
以上是关于CentOS7 uwsgi重启(通过shell脚本获取进程号并kill)的主要内容,如果未能解决你的问题,请参考以下文章