如何在csh中获取启动进程的PID(不是bash!)

时间:2014-11-19 19:30:41

标签: shell unix csh

对于bash,它是:

command; echo $!

但它不适用于csh(在Unix Tru64中,没有bash)。如何获得任意启动过程的PID?

2 个答案:

答案 0 :(得分:3)

在csh中使用$$来获取当前进程ID。

示例:

%echo $$

25352

答案 1 :(得分:2)

使用% pidof command% ps

使用示例:

$ csh
% sleep 420 &
[1] 28147
% pidof sleep
28147
% sleep 250 &
[2] 28154
% pidof sleep
28154 28141
% ps
PID TTY          TIME CMD
28059 pts/5    00:00:00 bash
28146 pts/5    00:00:00 csh
28147 pts/5    00:00:00 sleep
28154 pts/5    00:00:00 sleep
28157 pts/5    00:00:00 ps

您可以轻松管道ps命令的输出以获取所需的行和PID。最后启动的过程很可能在任何时候都在第四行(包括标题)。除非,即你立即启动c-shell而不是从bash中输入它,在这种情况下,它将在第3行。

示例:

$ csh
% sleep 420 &
[1] 28441
% ps | awk 'NR == 4 {print $1}'
28441