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

哎哟,Linux终端这玩意儿,退出程序的方法还真是挺多,得看具体情况。
比如说,你用个ping命令检查网络连通性,想停了它,直接Ctrl+C就搞定了,这叫通用中断方法。
你按住Ctrl,然后那个C键,终端上就冒出个^C,程序立马就歇菜了。

当时我刚开始用Linux的时候,也没想明白这Ctrl+C怎么就这么神奇。
后来发现,这其实是发送了个SIGINT信号,直接把进程给强制终止了。

还有个Ctrl+Z,这玩意儿更牛,它能暂停程序,比如编译任务这种。
你按一下,程序就进入后台暂停状态了。
要是你想让它恢复运行,就输入fg,要是你想彻底干掉它,就输入kill%1 ,这个1 是作业编号,你得先通过jobs命令看看。

再说说特定程序,比如Vim编辑器,你要是正常退出,就按Esc,然后输入:wq,保存退出。
或者直接输入:q!,强制退出不保存。
Nano编辑器就简单多了,Ctrl+X,然后根据提示输入Y或者N,按Enter确认。

页面查看工具像less和more,直接按q键就退出了。
man手册查看完之后,也按q退出。

交互式程序,比如Python脚本,你直接输入exit或者Ctrl+D(发送EOF信号)就退出了。
MySQL或者RedisCLI这种客户端,输入quit或者exit就退出了。

后台进程管理,你要是发现有个进程在后台跑着,你想终止它,就用ps或者top找到它的PID,然后输入kill-9 PID,强制终止。
不过这SIGKILL信号慎用,搞不好会把进程杀得连灰都不剩。

退出终端会话,正常退出就输入exit或者Ctrl+D。
要是终端里还有后台进程,直接退出可能会把进程也给终止了,除非你用了nohup或者tmux。

特殊场景处理,比如程序无响应,你先试试Ctrl+C,不行就按Ctrl+,发送SIGQUIT信号,可能会生成核心转储文件。
再不行,就用kill-9 强制终止。

图形界面终端,像GNOME Terminal或者Konsole,你直接点窗口关闭按钮就成,但最好先终止程序,免得资源残留。

说实话,掌握这些方法,应对Linux终端的退出需求还是相当方便的,至少不会让你在终端里瞎转悠了。

LINUX怎么结束一个进程_Linux终止进程的kill命令使用方法

结束进程要先用ps或pidof找PID。

用psaux|grep进程名找PID。
用pidof进程名直接给PID。

杀进程先kill PID,发SIGTERM(1 5 )。
kill 1 2 3 4 是发SIGTERM。

要强杀就用kill -9 PID,发SIGKILL(9 )。
kill -9 1 2 3 4 是发SIGKILL。

暂停进程用kill -1 9 PID。
恢复进程用kill -1 8 PID。

批量杀进程用pkill进程名或killall进程名。

先软杀,再硬杀。
自己掂量。

Linux如何结束指定的进程

当时我遇到一个棘手的问题,在Linux系统里,有个进程一直占用大量CPU资源,我需要赶紧结束它。
首先,我懵了,不知道从何下手。
后来,我反应过来,得先找到这个进程的PID。
我尝试了ps-ef|grep进程名,这命令真管用,一下子就找到了进程的用户名、PID、CPU/内存占用、启动时间以及命令。
当时,我记住了那个PID,1 2 3 4
然后,我面临选择,是用kill还是killall,或者pkill?我决定用kill,因为它可以发送SIGTERM信号,让进程优雅地退出。
我输入了kill 1 2 3 4 ,结果进程消失了,但我不放心,又检查了一下,确认它真的结束了。

但是,我后来发现,如果进程特别顽固,SIGTERM可能不起作用,那我就得用kill -9 1 2 3 4 了,这可是强制终止,进程不会有机会保存数据,所以我一般不会轻易用这个。

还有一次,我需要结束一个特定用户的所有进程,我就用了pkill,输入pkill -u my_user my_process,这个命令太方便了,一下子就结束了所有那个用户运行的进程。

我写了个小脚本,用pgrep和kill结合,这样我就可以自动化这个过程了。
脚本里有个echo,提醒我进程已经被杀,这样我就不会忘了。

在使用这些命令的时候,我特别小心,会先核对进程信息,优先使用SIGTERM,避免用killall/pkill,除非我确定过滤条件精确。
而且,我会定期更新脚本,确保它还是适用的。

最后,我确认进程已经终止,用了ps-ef|grep进程名和systemctl status服务名,还有netstat,确保一切正常。
这个过程虽然有点繁琐,但总比系统崩溃要好。