9 如果我开始一个过程并在终端窗口中将其作为背景(例如ping google.com &),则可以使用kill %1(假设它是工作1)将其杀死。 但是,如果我打开另一个终端窗口(或选项卡),则后台进程未在下面列出,jobs并且无法使用直接杀死kill。 是否可以从另一个终端窗口或选项卡中终止此过程? 注意:我使用的是Xfce Terminal Emulator 0.4.3和bash(尽管如果解决方案存在于另一个通用shell中,但bash不存在,我也可以使用它) shell terminal process-management job-control jobs — DQdlM source
10 是的,您只需要知道流程的流程ID(PID)。您可以使用ps命令或pidof命令找到它。 kill $(pidof ping) 应该可以从任何其他外壳工作。如果不是,则可以使用ps和grep进行ping。 — 基思 source
6 如果您键入top另一个终端窗口,它将列出所有正在运行的进程。记下您所在的进程的ID job,然后按q离开该屏幕。然后kill该过程照常进行。 — Arthankamal source 感谢您的回答,但top并未显示出Shell中正在运行的所有特定进程(例如,未显示ping)。它确实为我提供了终端仿真器的PID,但是却像您期望的那样杀死了终端仿真器。 — DQdlM 2012年 1 如果输入top -U yourusername终端,它将仅列出您正在使用的进程。 — arthankamal 太棒了!为此+1!谢谢 — DQdlM 2012年 在顶端时,先按k再按15进行软杀(先尝试),再按9进行硬杀。 — Michael Durrant 2012年
4 我通常会这样: ps aux | grep $PROCESS | grep -v grep | awk '{print $2 " " $11}' 例如,如果$ PROCESS =“ bash”,则这是我当前会话的输出: 2683 bash 4481 bash 5695 bash 然后kill $PID,无论/bin/bash我不想再运行了,我都会为它服务。 ps,grep和(可选地)awk是用于PID的追捕到有帮助kill。 — 查尔斯·博伊德 source
top
并未显示出Shell中正在运行的所有特定进程(例如,未显示ping
)。它确实为我提供了终端仿真器的PID,但是却像您期望的那样杀死了终端仿真器。