通过nohup执行后台定时任务,进程查看及终止

linux的定时任务最少是1分钟执行一次,如果我们的程序需要几秒钟就执行一次时,那么就无法满足需求了。
此时,可以写一个程序(loop.sh),让其一直死循环,例如:

#!/bin/bash
while true ;do
php /www/wwwroot/dedemao/test/push/test.php
sleep 10
done

以上程序的含义是:每次循环都用php去执行一个php文件(test.php),10秒后,再次执行该文件。

nohup

用途:不挂断地运行命令。

&

用途:在后台运行
一般两个一起用

nohup command &

eg:

nohup sh loop.sh &>/dev/null &

通过以上命令就可以让loop.sh这个程序一直在后台运行了,即使关闭了linux服务器连接程序,依然会执行。

ps -ef

ps -aux|grep loop.sh

a:显示所有程序
u:以用户为主的格式来显示
x:显示所有程序,不以终端机来区分

注:

  用ps -def | grep查找进程很方便,最后一行总是会grep自己
  用grep -v参数可以将grep命令排除掉

ps -aux|grep loop.sh| grep -v grep

用awk提取进程ID

ps -aux|grep chat.js| grep -v grep | awk '{print $2}'

终止后台运行的进程

kill -9  进程号

发表评论

邮箱地址不会被公开。 必填项已用*标注