1

我运行以下代码失败

sudo killall %4

其中 %4 是我的 Vim 会话。

你怎么能在没有前景的情况下终止工作?

4

2 回答 2

3

试试kill %4吧。unix shell 使用 %x 作为当前运行进程的变量。要查看可以使用 %x 语法的进程,请使用jobs. Killall 是“kill”的包装,基本上相当于`ps -aux | grep | 剪切-f2 -d "" | xargs kill' 之类的,如果你是一个 shell junky。

不,抱歉,那个 shell 命令不能正常工作,但它确实说明了 killall 的工作原理 =p。它只会杀死与您提供的字符串匹配的所有进程。

另外,请尝试使用“man kill”来了解有关 kill 的更多信息。特别是, kill -9 您可能会觉得很有用。这有点相当于“强制退出”。

于 2009-05-03T04:00:07.523 回答
2

我相信你想要“杀”而不是“杀戮”。我在 tcsh 下测试是这样的:

home% cat
^Z
Suspended
home% kill %1
home% 
[1]    Terminated                    cat

此外,我怀疑这是否适用于 sudo 因为 sudo 会调用一个新的 shell,不是吗?在那个 shell 中, %4 不会被定义。

home% cat
^Z
Suspended
home% sudo kill %1
Password:
kill: illegal process id: %1

如果你真的需要sudo,你可以试试这个:

home% jobs -l
[1] + 26318 Suspended cat
home% sudo kill 26318
于 2009-05-03T04:05:24.250 回答