我在不同的时间作为后台进程运行了多个命令。
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
.