PHP 执行后台任务,无需依赖和扩展,无需等待任务完成 [ 未指定版本 ]
php-nohup
这是一个用来执行后台任务的库,可以返回后台任务的真是 pid,因此可以得到后台进程的运行状态,并且随时可以停止它
这是可跨平台的库, 支持以下系统:
- Windows
- Linux
- Mac osx
安装
可以通过 composer 来安装
compoer require dgr/nohup
如何使用
开启一个后台进程
你看,非常简单!
use dgr\nohup\Nohup;
$process = Nohup::run('sleep 5');
这个进程将会在后台运行5秒钟.
不过,你可以随时停止它:
//...
$process->stop();
他已经被 kill 了!
可以 通过此方法得到进程的 pid: $process->getPid()
, 可以返回真正的 pid 不论是 windows 系统还是 *nix 系统
也可以通过此方法查看进程的实时状态 $process->isRunning()
:
use dgr\nohup\Nohup;
$process = Nohup::run('sleep 5');
while ($process->isRunning()) {
echo '.';
sleep(1);
}
echo "Done.\n";
output: .....Done.
通过一直的 pid($pid) 来创建一个 process 对象
use dgr\nohup\Process;
$process = Process::loadFromPid($pid);
//or
$process = new Process($pid);
if ($process->isRunning()) {
$process->stop();
}
方法:
Nohup::run($commandLine, $outputFile, $errorFile)
$commandLine
: string, 将要执行的命令.$outputFile
: string, 保存输出内容的文件路径.$errlogFile
: string, 保存错误信息的文件路径.
cszchen
注册时间:2015-08-03
最后登录:2017-04-21
在线时长:2小时11分
最后登录:2017-04-21
在线时长:2小时11分
- 粉丝4
- 金钱55
- 威望30
- 积分375
共 2 条评论
windows上执行有问题吧,测试了Mac osx上可以
不错哦,这个可以有
111111
@深水鱼 1111
@深水鱼 111