Linux下使用脚本定时自动重启某进程(及处理crontab执行无效问题)

您所在的位置:网站首页 linux自动重启服务脚本命令 Linux下使用脚本定时自动重启某进程(及处理crontab执行无效问题)

Linux下使用脚本定时自动重启某进程(及处理crontab执行无效问题)

2024-07-14 03:54| 来源: 网络整理| 查看: 265

1、查找进程

[labour@ICLinuxTwo ~]$ jps 14107 Jps 13953 Bootstrap

2、kill

kill -9 13953

3、使用脚本

#找到进程并循环kill PID=$(jps | grep "Bootstrap" |awk '{print $1}') echo $PID for id in $PID do kill -9 $id echo "process $id killed" done #重启 /home/labour/apache-tomcat-6.0.45/bin/startup.sh

4、定时调度

  手动登陆执行比较麻烦,设置为每30分钟执行一次,只在白天8点~20点执行。需要安装crontab服务。

crontab -e

  输入并保存退出:

*/30 8-20 * * * /home/labour/restart_svr.sh

5、疑难处理

  正常执行该sh脚本是有效的,使用crontab执行却发现搜索不到进程。分析原因是因为crontab执行时不会带上环境变量。故修改调度命令如下即可:

*/30 8-20 * * * source /home/labour/.bash_profile && /home/labour/restart_svr.sh

6、调度配置例子:

0 1 * * * /home/testuser/test.sh 每天晚上1点调用/home/testuser/test.sh */10 * * * * /home/testuser/test.sh 每10钟调用一次/home/testuser/test.sh 30 21 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每晚的21:30重启apache。 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月1、10、22日的4 : 45重启apache。 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每周六、周日的1 : 10重启apache。 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每星期六的11 : 00 pm重启apache。 * */1 * * * /usr/local/etc/rc.d/lighttpd restart 每一小时重启apache * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每隔一小时重启apache 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 每月的4号与每周一到周三的11点重启apache 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 一月一号的4点重启apache */30 * * * * /usr/sbin/ntpdate 210.72.145.44 每半小时同步一下时间

8、crontab命令

crontab -u//设定某个用户的cron服务 crontab -l//列出某个用户cron服务的详细内容 crontab -r//删除某个用户的cron服务 crontab -e//编辑某个用户的cron服务

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3