linux 一直执行某php,linux上执行php脚本文件总是无故中断(如何让脚本后台执行不中断)...

今天还遇到一个比较蛋疼的问题,就是写的脚本在服务器上执行跑不出数据来,一开始以为是脚本写的有问题,跑不出来,就反复改脚本,实在没啥可改的了,觉得脚本没有问题。可是为啥就是没数据呢!悲催啊。你写的东西没结果,肯定以为是你的问题。做程序员就是这样,你的工作没有结果,肯定就是你的问题。哎。

因为我写的是统计分析的脚本,因为很多数据都是多个表联合查询,汇总,运算出来的,然后写库,形成记录;所以在测试上比较难测试,只能简单的在测试机上测试下,然后去线上跑,看结果。

我每次把脚本传给运维,运维上传,然后帮我执行,可是结果呢,总是发现数据少,还不是没有结果,所以一直以为是我的程序的问题。运维在线上执行任何操作的都是走跳板机,就是通过一个中间机器,连接在其他的服务器,任何操作都在跳板机上做有记录。

运维是这样执行的:跳板机连接到服务器,饭后执行 php  我的脚本 & ;然后没啥问题的话,就把跳板关了。当你关的时候,其实脚本程序也被kill掉了,但是他们也不知道,因为我的脚本执行时间不少,所以不是特别的明显。

其实这样执行是有问题的,如果执行phpfile & 如果你关掉bush的话,你的脚本也会被杀死,需要用nohoup php file & 这样的话,及时你关闭连接也会执行的。

附:后台执行UNIX/Linux命令和脚本的五种方法  (附件为网上查找的)

1. 使用&符号在后台执行命令

你可以在Linux命令或者脚本后面增加&符号,从而使命令或脚本在后台执行,例如:.

$ ./my-shell-script.sh &

2. 使用nohup在后台执行命令

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

$ nohup ./my-shell-script.sh &

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值