获取 Linux 中 nohup 提交的作业的 PID
Get PID of the jobs submitted by nohup in Linux
我在通过 BSUB 和 ssh 获得的机器中使用 nohup 在后台提交作业。
我的主要机器在 RHEL
上,从那里我通过 BSUB
(向 LSF 提交作业)拿起另一台 AIX
机器,并通过 SSH 登录到另一台机器服务器。
得到这两台机器后,通过nohup在那里执行一个脚本(inner.sh
)。
我正在通过我正在执行的脚本 (inner.sh
) 中的 echo $$
捕获相应的 PID。
在后台提交 nohup 执行后,我退出两台机器并返回主 RHEL 机器。
现在,在这台 RHEL
机器上,我试图在之前捕获的两个 PID 的帮助下通过 ps -p PID
获取 nohup 执行的状态,但没有列出任何进程.
顶级包装脚本wrapper.sh:
#!/bin/bash
#login to a remote server
ssh -k xyz@abc < env_setup.sh
#picking up a AIX machine form LSF
bsub -q night -Is ksh -i env_setup.sh
ps -p process-<AIX_machine>.pid
#got no output
ps -p process-<server_machine>.pid
#got no output
脚本传递给 BSUB/SSH 拾取的机器以执行 nohup env_setup.sh:
#!/bin/bash
nohup sh /path/to/dir/inner.sh > /path/to/dir/log-<hostname>.out &
exit
我试图在 BSUB/SSH inner.sh:
拾取的机器上执行的实际脚本
#!/bin/bash
echo $$ > /path/to/dir/process-<hostname>.pid
#hope this would give correct us the PID of the remote machine
#execute some other commands
现在,我得到了两个 process-<hostname>.pid
文件,分别为两台机器更新了两个 PID。
但是 ps -p
包装脚本没有给我们任何输出。
我正在从远程机器获取进程 ID,并在我的本地 RHEL
机器上执行 ps -p
。
这是我没有收到这两个进程的任何状态更新的原因吗?
我可以做任何其他事情来获得状态吗?
ps
给出本地进程的状态。 bsub
可用于获取每台远程计算机上的进程状态。
我在通过 BSUB 和 ssh 获得的机器中使用 nohup 在后台提交作业。
我的主要机器在 RHEL
上,从那里我通过 BSUB
(向 LSF 提交作业)拿起另一台 AIX
机器,并通过 SSH 登录到另一台机器服务器。
得到这两台机器后,通过nohup在那里执行一个脚本(inner.sh
)。
我正在通过我正在执行的脚本 (inner.sh
) 中的 echo $$
捕获相应的 PID。
在后台提交 nohup 执行后,我退出两台机器并返回主 RHEL 机器。
现在,在这台 RHEL
机器上,我试图在之前捕获的两个 PID 的帮助下通过 ps -p PID
获取 nohup 执行的状态,但没有列出任何进程.
顶级包装脚本wrapper.sh:
#!/bin/bash
#login to a remote server
ssh -k xyz@abc < env_setup.sh
#picking up a AIX machine form LSF
bsub -q night -Is ksh -i env_setup.sh
ps -p process-<AIX_machine>.pid
#got no output
ps -p process-<server_machine>.pid
#got no output
脚本传递给 BSUB/SSH 拾取的机器以执行 nohup env_setup.sh:
#!/bin/bash
nohup sh /path/to/dir/inner.sh > /path/to/dir/log-<hostname>.out &
exit
我试图在 BSUB/SSH inner.sh:
拾取的机器上执行的实际脚本#!/bin/bash
echo $$ > /path/to/dir/process-<hostname>.pid
#hope this would give correct us the PID of the remote machine
#execute some other commands
现在,我得到了两个 process-<hostname>.pid
文件,分别为两台机器更新了两个 PID。
但是 ps -p
包装脚本没有给我们任何输出。
我正在从远程机器获取进程 ID,并在我的本地 RHEL
机器上执行 ps -p
。
这是我没有收到这两个进程的任何状态更新的原因吗?
我可以做任何其他事情来获得状态吗?
ps
给出本地进程的状态。 bsub
可用于获取每台远程计算机上的进程状态。