Linux进程后台执行

来源:互联网 发布:散热分析中文软件 编辑:程序博客网 时间:2024/05/11 21:08

学习SNMP协议,写了一个用SYSUpTime.0获取系统自开机到现在的时间的小php程序,如下:


<?phpdefine("BIT",8);$g=0;$idd=mysql_connect("localhost","n1417","123456")or die("could not connect:".mysql_error());mysql_select_db("n1417",$idd);//mysql_query("truncate table time");do{$stringt=@date("H:i");                                                                              $strings=snmp2_get("127.0.0.1","bjfu11","system.sysUpTime.0");$result=mysql_query("insert into time(t,sysup) values ('$stringt','$strings')",$idd);if(!$result){die("write error".mysql_error());break;}$g++;sleep(3600);}while($g!=48);mysql_close($idd);?>
因为睡眠1小时,循环48次,即两天的程序。若中途断电或断网,程序就会终断,就要重新跑。

所以,为了方便,考虑将程序在后台运行,即使关掉窗口,程序也会继续运行。


若要后台运行,有以下几种方法:

1. 使用&符号在后台执行命令
   在Linux命令或者脚本后面增加&符号,从而使命令或脚本在后台执行,例如:.
   #php example.php &


2. 使用nohup在后台执行命令
   使用&符号在后台执行命令或脚本后,如果退出登录,这个命令就会被自动终止掉。要避免这种情况,可使用nohup命令,如下所示:
   #nohup php example.php &


3. 使用screen执行命令
  通过nohup和&符号在后台执行命令后,即使退出登录,这个命令也会一直执行。但是无法重新连接到这个会话,要想重新连接到这个会话,可以使用screen命令。.
  Linux的screen命令提供了分离和重新连接一个会话的功能。当重新连接这个会话的时候,终端和分离的时候一模一样。


4. 使用at将一个命令作为批处理执行
  使用at命令,可以让一个命令在指定的日期和时间运行,例如要在明天上午10点在后台执行备份脚本,执行下面的命令:
  # at -f backup.sh 10 am tomorrow
  在批处理模式下执行某些任务需要启用一些选项。


5. 使用watch连续地执行一个命令
  要想按一个固定的间隔不停地执行一个命令,可以使用watch命令,如下所示:
 # watch df -h

0 0
原创粉丝点击