如果我sleep 30
在一个 PuTTY 窗口中运行,如何从另一个 PuTTY 窗口中找到 sleep 命令的进程 ID?
答案1
命令pgrep
如果您的发行版有正则表达式命令已安装(例如从过程package),然后您可以使用该命令按模式查找进程ID。例如:
# Find the sleep commands belonging to the current user.
pgrep -u $LOGNAME sleep
此命令将查找属于当前用户的所有匹配项,无论该进程是在当前终端还是其他终端中启动,因此它将适用于您的 PuTTY 用例。
测试pgrep
命令
您也可以非常简单地在单个 TTY 或 PTY 上测试这一点。考虑:
$ sleep 30 & pgrep -u $LOGNAME sleep
[1] 24021
24021
在这个例子中,睡觉被放入后台,Bash 报告后台作业的作业 ID 和 PID。然后正则表达式在进程列表中找到相同的PID,并将PID发送到标准输出。显然,数字应该匹配。
多场比赛
请注意,如果当前用户有多个睡觉命令运行,然后正则表达式将正确报告多个 PID。例如,以下命令返回后台作业的 PID%1
和%2
:
$ sleep 30 & sleep 30 & pgrep -u $LOGNAME sleep
[1] 24063
[2] 24064
24063
24064
答案2
ps -u "your_login" | grep "sleep" | awk '{print $1}'