如何在 Linux 系统中结束进程或是中止程序

Linux 中有多种终止进程的方法。
命令行或图形界面都可以工作。

我们先来说说命令行。
Ctrl+C组合键的作用非常突出。
如果您运行像 gedit 这样的程序并且不使用在后台运行的 & 符号。
shell 提示符将为您关闭。
此时,按Ctrl+C退出程序。
原理是发送SIGINT信号告诉进程,“嘿,停止运行,回来吧”。

然后按 Ctrl+Z。
这与 Ctrl+C 不同。
在前台程序中按Ctrl+Z将终止它,而不是直接杀死它。
例如,如果您正在使用 nano 编辑文件,突然想做其他事情,只需按 Ctrl+Z 即可暂停。
您想继续使用 fg 还是 bg 来返回?它发送 SIGTSTP 信号。

接下来是kill命令。
这个比较灵活。
您必须知道进程 ID,即 PID。
使用kill PID如kill 1 2 3 4 向PID为1 2 3 4 的进程发送信号。
如果想完全杀死它,可以kill -9 1 2 3 4 它发出SIGKILL信号,不能杀死正常进程。
但通常我仍然使用kill或kill -1 5 (SIGTERM)来使进程干净地退出。

killall命令也不错。
您不知道 PID,但您知道进程名称。
例如killall firefox将杀死所有名为firefox的进程。
默认情况下它还会发送 SIGTERM。

最后有xkill。
这是独一无二的;这是用鼠标完成的。
在终端中执行xkill,光标会由十字变为十字。
单击任何窗口都会终止该进程。
这是非常危险的。
不要搞乱关键的系统进程。
使用时要非常小心。

还有一个图形界面。
GNOME 和 KDE 等桌面环境有任务管理器或进程管理器。
正在执行什么过程;单击它可查看其使用的 CPU 和内存量。
单击“结束任务”或类似按钮来结束该过程。
比命令行直观得多。

每种方法都有其自己的用途。
Ctrl+C 用于简单任务;使用 Ctrl+Z。
如果比较复杂或者想要精确控制,可以使用kill或者killall。
如果你想使用鼠标,xkill 就在那里等着。
对于图形界面,任务管理器就足够了。

如何在 Linux 终端中退出一个程序 | Linux 中国

你说的太详细了。
作为我这样的人,我喜欢说实话。

我记得当我开始使用 Linux 时,我看起来像个白痴。
创建一个脚本并运行它。
一旦那个人离开并且终端关闭,亲爱的,脚本也会消失。
我必须再次打开终端并再次运行它。
这会让我生气。
然后我发现你必须使用 nohup 或 screen 或 tmux 之类的工具来完成此操作,否则它将无法工作。

以Ctrl+C为例。
我经常敲这个键。
当时,我曾经在生产环境中运行一系列 ping 测试,却忘记手动停止它们。
结果,服务器继续发送数据包。
对面的技术小哥打电话给我,骂了我半天。
幸好我很快用Ctrl+C结束了,不然以后就麻烦大了。

另一个例子是Ctrl+Z,我也经常使用它。
过去,我会做较大的编译任务,可能需要十到二十分钟才能运行。
如果我想在中间做其他事情,我只需按 Ctrl+Z 暂停,去做其他事情,然后再次 fg 并在完成后继续编译。
这比关闭然后再次打开要好得多。

操作数据库时,使用mysql或redis-cli,并使用exit或quit退出。
这非常一致。

后台进程管理,我遇到过很多问题。
有一次我运行了一个 Python 脚本来分析数据,但最终编写了一个无限循环,不断运行并填满内存。
我使用 ps aux | 检查了该过程grep python 找到PID,然后通过kill -9 PID强制杀死它。
-9 应谨慎使用。
当时我因为用kill -9 杀错了进程,杀掉了一个重要的服务,一晚上都没睡好。

直接关闭终端,我以前也这样做过。
我记得使用 SSH 连接到服务器并运行 tail -f 来读取日志。
那人离开后,我关闭了终端。
结果,-f tail 也退出了,我停止跟踪日志。
然后我发现需要像这样运行 nohup tail -f log.txt > output.log 2 >&1 & ,然后退出关闭终端,日志才能继续。

你总结得确实很好,先试试Ctrl+C,大多数情况下都有效。
编辑器使用自己的特殊命令,需要使用kill来创建后台进程。
不要只是愚蠢地关闭终端。
Linux 是一件事,如果你熟练地使用它,它就会变得更加高效。