如何使用命令行检查Unix中的运行进程

时间:2020-01-09 10:38:59  来源:igfitidea点击:

如何使用命令行选项检查Unix中的运行进程?
可以使用Unix命令行或终端应用程序显示正在运行的进程,更改其优先级,删除进程等等。
该页面显示了如何使用各种命令来列出,终止和管理Unix上的进程。

如何从Unix终端上管理进程

ps命令是传统的Unix命令,用于列出正在运行的进程。

以下命令显示了系统上运行的所有进程:

ps -aux
sudo ps -a

进程ID(PID)对于在Unix上终止或控制进程至关重要。例如,考虑以下输出:

Hyman 43126  0.0  0.0 13160 8452  -  S    10:59   0:00.03 vim
  • Hyman用户名
  • 43126PID(Unix进程ID)
  • 10:59处理开始时间
  • vim实际过程或命令

可能有太多的过程。
这时,可以使用以下less/more命令作为管道来一次显示一个屏幕的进程:

ps -aux | more
sudo ps -aux | less

按" q"退出Unix less屏幕。
您可以使用grep命令/egrep命令搜索特定的Unix进程:

ps aux | grep nginx
sudo ps aux | grep vim
sudo ps -aux | egrep 'sshd|openvpn'

pgrep命令

Unix的许多变体都带有" pgrep"命令来搜索/查找进程。
语法为:

pgrep process
sudo pgrep sshd
pgrep vim
pgrep -l nginx

传递给pgrep命令的-l选项也可以显示长格式和进程名。

top

强烈建议使用" top"命令来查看Unix服务器的资源使用情况。
可以看到使用最多的内存,CPU或磁盘的最重要进程的列表。

top
sudo top
sudo top [options]

Unix kill命令

想杀死一个进程吗?
试试kill命令。
语法为:

kill pid
kill -signal pid

使用ps,pgrep或top命令查找PID。
假设您想杀死PID 50797,请运行:

kill 50797

由于某种原因,如果无法终止该进程,请尝试强制终止:

kill -9 50797

或者

kill -KILL 50797

pkill命令

如果要按名称终止进程,请尝试使用pkill命令。
语法为:

pkill processName
pkill vim
pkill firefox
pkill -9 emacs
sudo pkill -KILL php7-fpm

killall命令

" killall"命令按名称杀死进程,而不是像kill命令那样按PID选择进程:

killall vim
killall -9 emacs

好又仁慈的命令

" nice"命令的主要目的是以较低或较高的优先级运行进程/命令。
使用" renice"命令更改一个或多个正在运行的Unix进程的值。

nice值的范围可以从-20到19,其中19是最低优先级。
假设您要在繁忙的Unix服务器上编译软件。
您可以设置一个非常低的优先级,执行:

nice -n 13 cc -c *.c &

为内核更新设置很高的优先级。
在重新引导Unix服务器之前,运行:

nice --10 wall <<end
System reboots in 5 minutes for Unix kernel update! 
Save all your work!!!
 
-- Sysadmin
end

要更改正在运行的进程的优先级,请执行以下内容:

renice {Priority} -p {PID}
renice {Priority} {PID}
pgrep vim
renice 10 69947
sudo renice -10 $(pgrep vim)