杀死命令用法
的通用语法kill command是:
# kill [signal or option] PID(s)
为一个kill command一种Signal Name可能:
Signal Name Signal Value BehaviourSIGHUP 1 HangupSIGKILL 9 Kill SignalSIGTERM 15 Terminate
从上面的行为显然,
SIGTERM是杀死进程的默认和最安全的方法。SIGHUP是一种比杀死进程更不安全的方式SIGTERM.SIGKILL是上面三种中最不安全的方式,kill 掉一个进程,不保存就终止进程。
为了杀死进程,我们需要知道进程的进程ID使用PID查找Linux进程名称。一种
Process是一个程序的实例。每次程序启动时,自动生成一个唯一的PID。
列出所有正在运行的 Linux 进程
# ps -A
输出
PID TTY TIME CMD 1 ? 00:00:01 init 2 ? 00:00:00 kthreadd 3 ? 00:00:00 migration/0 4 ? 00:00:00 ksoftirqd/0 5 ? 00:00:00 migration/0 6 ? 00:00:00 watchdog/0 7 ? 00:00:01 events/0 8 ? 00:00:00 cgroup 9 ? 00:00:00 khelper10 ? 00:00:00 netns11 ? 00:00:00 async/mgr12 ? 00:00:00 pm13 ? 00:00:00 sync_supers14 ? 00:00:00 bdi-default15 ? 00:00:00 kintegrityd/016 ? 00:00:00 kblockd/017 ? 00:00:00 kacpid18 ? 00:00:00 kacpi_notify19 ? 00:00:00 kacpi_hotplug20 ? 00:00:00 ata/021 ? 00:00:00 ata_aux22 ? 00:00:00 ksuspend_usbd
# pidof mysqld
输出
1684
另一种方法是
# ps aux | grep mysqld
输出
root 1582 0.0 0.0 5116 1408 ? S 09:49 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysqlmysql 1684 0.1 0.5 136884 21844 ? Sl 09:49 1:09 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sockroot 20844 0.0 0.0 4356 740 pts/0 S+ 21:39 0:00 grep mysqld
如何在 Linux 中杀死进程
在我们提前执行之前kill command, 一些需要注意的要点:
-
用户可以杀死他的所有进程。
-
一个用户不能杀死另一个用户的进程。
-
用户不能终止系统正在使用的进程。
-
root 用户可以杀死系统级进程和任何用户的进程。
执行相同功能的另一种方法是执行
pgrep命令。
# pgrep mysql
输出
3139
杀掉上面的进程
PID,使用如图所示的kill命令。
kill -9 3139
上面的命令将杀死具有
pid=3139
另一种执行相同功能的方法可以重写为。
# kill -SIGTERM 3139
kill -9 PID类似于kill -SIGKILL PID反之亦然。
如何在 Linux 中使用进程名称杀死进程
# pkill mysqld
一次杀死多个进程。
# kill PID1 PID2 PID3or# kill -9 PID1 PID2 PID3or# kill -SIGKILL PID1 PID2 PID3
如果一个进程有太多实例和许多子进程,我们有一个命令
killall或者pkill.这两个是该系列中唯一的命令,它将进程名称作为参数代替进程编号。
# killall [signal or option] Process NameOr# pkill Process Name
杀死所有
mysql instances连同子进程,使用如下命令。
# killall mysqldOR# pkill mysqld
可以使用以下任何命令来验证进程的状态。
# service mysql statusOR# systemctl status mysql# pgrep mysql# ps -aux | grep mysql
以上就是本次分享的全部内容,现在想要学习编程的小伙伴欢迎关注PHP开源社区公众号,获取更多技能与教程。