我正在使用PHP库phpseclib0.2.2
自动将SSH连接到我的一台服务器中。我把它设置为每5分钟运行一次的cron任务。
在设置之后退出,确保它运行等,我看到以下内容:
$ logout
There are stopped jobs.
$
我被迫使用
$ logout
再次注销。是否有一堆SSH进程/作业在我的服务器上运行,我从未关闭如何在终端中使用bash命令(或更好的方法)“检查”?
以下是我使用的代码。
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('www.domain.com');
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('some command');
?>
答案 0 :(得分:2)
你可能已经开始了一些流程并将它们发送到后台,例如。 G。使用sleep 60 &
之类的尾随符号或按^Z
。
您可以使用jobs
命令列出当前shell中的正在运行或已挂起的作业。如果要在关闭shell后让它们保持运行,首先需要disown
它们,然后将它们发送到bg
的背景中。
$ sleep 1000 &
[1] 2345
$ sleep 2000
^Z
[2]+ Stopped sleep 2000
$ jobs
[1]- Running sleep 1000 &
[2]+ Stopped sleep 2000
$ kill %2
$ kill %1
[1]- Terminated sleep 1000
[2]+ Terminated sleep 2000
如果要在退出shell之后保持进程运行,并且事先已经知道应该使用nohup
来启动这些进程或编写正确的init脚本。