我正在使用Linux SUSE 11并运行很多作业。每个作业的路径很长,例如:
cmd>/user/data/some/very/very/very/long/path/to/my/command/run_me param0 param1 param2
当我运行很多这些命令时,我想知道哪个已完成,哪个正在运行。过了一天左右再说吧。使用"jobs"命令,我只看到以下内容:
[1] + Running ...
[2] + Running ...
[3] + Running ...
[4] + Running ...
所以我无法知道正在运行哪个确切的命令。
使用top
命令也没有帮助,因为 is 显示的是进程而不是我正在运行的确切脚本/程序。
我的外壳很/usr/bin/tcsh
在tcsh
中,jobs -l
给你一个包含PID的"长"列表。 然后,您可以使用此数字来检查ps
或在/proc
伪文件系统或其他情况下摸索的作业。
% jobs -l
[1] + 19038 Running tail --follow=name /path/to/long/and/complex /long/and/complex/files /and/so/on ...
从这个列表中,你可以抓住19038
,看看它到底在做什么。
% ps -o args= --width 1200 19945
tail --follow=name /path/to/long/and/complex /long/and/complex/files /and/so/on /really/long /etc/motd
以及
% tr ' ' 'n' </proc/19038/cmdline
tail
--follow=name
/path/to/long/and/complex
/long/and/complex/files
/and/so/on
/really/long
/etc/motd
或者,有点混乱,top
:
% setenv COLUMNS 512
% top -b -n1 -c -p 19038
(输出太丑了,无法在此处显示,并且没有添加任何有用的内容。