如何知道进程运行的命令?

如何知道进程运行的命令?

我在不同的时间作为后台进程运行了多个命令。

wget -r url1 &
wget -r url2 &
..............
..............

结果ps -e显示 2 个进程名为wget---

     2552 ?        00:00:01 wget
     2576 ?        00:00:00 wget
     ......        .............
     ......        .............

现在,我想终止正在执行的进程url2。我如何知道哪个进程运行哪个url

答案1

使用选项代替命令-e的选项。ps-f

user1    14298 13518  0 00:11 pts/1    00:00:00 sleep 100
user1    14299 13518  0 00:11 pts/1    00:00:00 sleep 50

这样您也将看到传递给命令的参数,在您的情况下是不同的 URL

答案2

如果这是在交互式 shell 设置中完成的,则可以使用 终止第二个后台作业kill %2

如果这是在 shell 脚本中完成的,您可以记录 PID 并向它们发出信号:

#!/bin/bash
wget http://example.com/bigfile1 &
pid1=$!
wget http://example.com/biggerfile2 &
pid2=$!
# Time passes..
# Impatience intensifies...
kill $pid2

如果您想查看当前会话的完整命令行(和环境),您可以使用ps ex.

相关内容