对于bash,它是:
command; echo $!
但它不适用于csh(在Unix Tru64中,没有bash)。如何获得任意启动过程的PID?
答案 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