您可以在上面 ps 命令的输出中看到 Nginx 进程 。这个命令显示了将近 300 行,但是我在这个例子中缩短了它 。可以想象,试图处理 300 行过程信息有点混乱 。我们可以将这个输出输送到 grep ,过滤一下仅显示 nginx 。
alan@workstation:~$ ps -ef |grep nginxalan20520 1454 0 10:39 ?00:00:00 nginx: master process nginxalan20521 20520 0 10:39 ?00:00:00 nginx: worker process确实更好了 。我们可以很快看到,Nginx 有 20520 和 20521 的 PID 。
PGREP
pgrep 命令更加简化单独调用 grep 遇到的问题 。
alan@workstation:~$ pgrep nginx2052020521假设您在一个托管环境中,多个用户正在运行几个不同的 Nginx 实例 。您可以使用 -u 选项将其他人排除在输出之外 。
alan@workstation:~$ pgrep -u alan nginx2052020521PIDOF
另一个好用的是 pidof。此命令将检查特定二进制文件的 PID,即使另一个同名进程正在运行 。为了建立一个例子,我将我的 Nginx 复制到第二个目录,并以相应的路径前缀启动 。在现实生活中,这个实例可能位于不同的位置,例如由不同用户拥有的目录 。如果我运行两个 Nginx 实例,则 pidof 输出显示它们的所有进程 。
alan@workstation:~$ ps -ef |grep nginxalan20881 1454 0 11:18 ?00:00:00 nginx: master process ./nginx -p /home/alan/web/prod/nginxsecalan20882 20881 0 11:18 ?00:00:00 nginx: worker processalan20895 1454 0 11:19 ?00:00:00 nginx: master process nginxalan20896 20895 0 11:19 ?00:00:00 nginx: worker process使用 grep 或 pgrep 将显示 PID 数字,但我们可能无法辨别哪个实例是哪个 。
alan@workstation:~$ pgrep nginx20881208822089520896pidof 命令可用于确定每个特定 Nginx 实例的 PID 。
alan@workstation:~$ pidof /home/alan/web/prod/nginxsec/sbin/nginx20882 20881alan@workstation:~$ pidof /home/alan/web/prod/nginx/sbin/nginx20896 20895TOP
top 命令已经有很久的历史了,对于查看运行进程的细节和快速识别内存消耗等问题是非常有用的 。其默认视图如下所示 。
top - 11:56:28 up 1 day, 13:37, 1 user, load average: 0.09, 0.04, 0.03Tasks: 292 total, 3 running, 225 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.1 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 16387132 total, 10854648 free, 1859036 used, 3673448 buff/cacheKiB Swap:0 total,0 free,0 used. 14176540 avail Mem PID USERPR NI VIRT RES SHR S %CPU %MEMTIME+ COMMAND17270 alan20 0 3930764 247288 98992 R 0.7 1.5 5:58.22 gnome-shell20496 alan20 0 816144 45416 29844 S 0.5 0.3 0:22.16 gnome-terminal-21110 alan20 0 41940 3988 3188 R 0.1 0.0 0:00.17 top 1 root20 0 225564 9416 6768 S 0.0 0.1 0:10.72 systemd 2 root20 0000 S 0.0 0.0 0:00.01 kthreadd 4 root0 -20000 I 0.0 0.0 0:00.00 kworker/0:0H 6 root0 -20000 I 0.0 0.0 0:00.00 mm_percpu_wq 7 root20 0000 S 0.0 0.0 0:00.08 ksoftirqd/0可以通过键入字母 s 和您喜欢的更新秒数来更改更新间隔 。为了更容易监控我们的示例 Nginx 进程,我们可以使用 -p 选项并传递 PID 来调用 top。这个输出要干净得多 。
alan@workstation:~$ top -p20881 -p20882 -p20895 -p20896Tasks: 4 total, 0 running, 4 sleeping, 0 stopped, 0 zombie%Cpu(s): 2.8 us, 1.3 sy, 0.0 ni, 95.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 16387132 total, 10856008 free, 1857648 used, 3673476 buff/cacheKiB Swap:0 total,0 free,0 used. 14177928 avail Mem PID USERPR NI VIRT RES SHR S %CPU %MEMTIME+ COMMAND20881 alan20 0 12016 3480 S 0.0 0.0 0:00.00 nginx20882 alan20 0 12460 1644 932 S 0.0 0.0 0:00.00 nginx20895 alan20 0 12016 3520 S 0.0 0.0 0:00.00 nginx20896 alan20 0 12460 1628 912 S 0.0 0.0 0:00.00 nginx在管理进程,特别是终止进程时,正确确定 PID 是非常重要 。此外,如果以这种方式使用 top ,每当这些进程中的一个停止或一个新进程开始时,top 都需要被告知有新的进程 。
终止进程
KILL
有趣的是,没有 stop 命令 。在 Linux 中,有 kill 命令 。kill 用于向进程发送信号 。最常用的信号是“终止”( SIGTERM )或“杀死”( SIGKILL ) 。然而,还有更多 。下面是一些例子 。完整的列表可以用 kill -L 显示 。
推荐阅读
- Linux系统下virtuoso数据库安装与使用详解教程
- xshell远程登陆CentOS系统不需要密码登陆的思路详解
- ubuntu系统设置开机自启动服务
- 中兴 红牛v5s怎么样
- 中兴红牛手机怎么样
- 中国象棋日"人机"大战给简要介绍一下.
- 系統更新了?
- 系统桌面:一个桌面系统,两个桌面空间
- 中锐空气能热水器官网,中锐空气能热水器有几种规格
- 法拉利三个排气在中间