当 Ctrl-C 不起作用时,如何终止从 rc.local 启动的程序?

Pet*_*ton 3 startup kill rc

我试图创建一个程序运行在启动时,需要一个画面每10秒(在一个无限循环)在我的树莓派,但我发现我犯了一个错误,但不能Ctrl+C出来。有没有办法逃脱?

(我确实尝试转到其他工作区,但未显示登录提示。)

Rob*_*rtL 10

如果您从 rc.local 启动程序,则无法登录到 shell 并键入 ctrl-c 来停止它。原因是该程序不是从您登录的 shell 启动的。

您将找到程序的进程 ID ( pid) 并使用该kill命令向进程发送信号,使其终止。

例如,在控制台(在终端窗口中或通过 ssh 登录):

ps aux | grep 'the-name-of-your-progam'
Run Code Online (Sandbox Code Playgroud)

第二列中的数字是pid。使用它pid向进程发送终止信号:

kill -TERM [put-your-pid-here]
Run Code Online (Sandbox Code Playgroud)

进程可能会选择忽略该TERM信号,因此ps再次运行管道。如果您仍然看到相同的pid,则发送终止信号:

kill -KILL [put-your-pid-here]
Run Code Online (Sandbox Code Playgroud)