设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 手机 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

8个用于有效地管理进程的Linux命令

发布时间:2018-09-19 10:11 所属栏目:117 来源:Alan Formy-duval
导读:【新品产上线啦】51CTO播客,随时随地,碎片化学习 通过这些关键的命令来全程管理你的应用。 一般来说,应用程序进程的生命周期有三种主要状态:启动、运行和停止。如果我们想成为称职的管理员,每个状态都可以而且应该得到认真的管理。这八个命令可用于管
【新品产上线啦】51CTO播客,随时随地,碎片化学习

8个用于有效地管理进程的Linux命令

通过这些关键的命令来全程管理你的应用。

一般来说,应用程序进程的生命周期有三种主要状态:启动、运行和停止。如果我们想成为称职的管理员,每个状态都可以而且应该得到认真的管理。这八个命令可用于管理进程的整个生命周期。

启动进程

启动进程的最简单方法是在命令行中键入其名称,然后按回车键。如果要启动 Nginx web 服务器,请键入 nginx 。也许您只是想看看其版本。

  1. alan@workstation:~$ nginx
  2.  
  3. alan@workstation:~$ nginx -v
  4. nginx version: nginx/1.14.0 

查看您的可执行路径

以上启动进程的演示是假设可执行文件位于您的可执行路径中。理解这个路径是可靠地启动和管理进程的关键。管理员通常会为他们想要的目的定制这条路径。您可以使用 echo $PATH 查看您的可执行路径。

  1. alan@workstation:~$ echo $PATH
  2. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin 

WHICH

使用 which 命令查看可执行文件的完整路径。

  1. alan@workstation:~$ which nginx
  2. /opt/nginx/bin/nginx

我将使用流行的 web 服务器软件 Nginx 作为我的例子。假设安装了 Nginx。如果执行 which nginx 的命令什么也不返回,那么是找不到 Nginx 了,因为它只搜索您指定的可执行路径。有三种方法可以补救一个进程不能简单地通过名字启动的情况。首先是键入完整路径 —— 虽然,我不情愿输入全部路径,您会吗?

  1. alan@workstation:~$ /home/alan/web/prod/nginx/sbin/nginx -v
  2. nginx version: nginx/1.14.0

第二个解决方案是将应用程序安装在可执行文件路径中的目录中。然而,这有时可能是办不到的,特别是如果您没有 root 权限。

第三个解决方案是更新您的可执行路径环境变量,包括要使用的特定应用程序的安装目录。这个解决方案是与 shell 相关的。例如,Bash 用户需要在他们的 .bashrc 文件中编辑 PATH= 行。

  1. PATH="$HOME/web/prod/nginx/sbin:$PATH"

现在,重复您的 echowhich 命令或者尝试检查版本。容易多了!

  1. alan@workstation:~$ echo $PATH
  2. /home/alan/web/prod/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
  3.  
  4. alan@workstation:~$ which nginx
  5. /home/alan/web/prod/nginx/sbin/nginx
  6.  
  7. alan@workstation:~$ nginx -v                                                
  8. nginx version: nginx/1.14.0 

保持进程运行 

NOHUP

注销或关闭终端时,进程可能不会继续运行。这种特殊情况可以通过在要使用 nohup 命令放在要运行的命令前面让进程持续运行。此外,附加一个& 符号将会把进程发送到后台,并允许您继续使用终端。例如,假设您想运行 myprogram.sh

  1. nohup myprogram.sh &

nohup 会返回运行进程的 PID。接下来我会更多地谈论 PID。

管理正在运行的进程

每个进程都有一个唯一的进程标识号 (PID) 。这个数字是我们用来管理每个进程的。我们还可以使用进程名称,我将在下面演示。有几个命令可以检查正在运行的进程的状态。让我们快速看看这些命令。

PS

最常见的是 ps 命令。ps 的默认输出是当前终端中运行的进程的简单列表。如下所示,第一列包含 PID。

  1. alan@workstation:~$ ps
  2. PID TTY          TIME CMD
  3. 23989 pts/0    00:00:00 bash
  4. 24148 pts/0    00:00:00 ps

我想看看我之前启动的 Nginx 进程。为此,我告诉 ps 给我展示每一个正在运行的进程(-e)和完整的列表(-f)。

  1. alan@workstation:~$ ps -ef
  2. UID        PID  PPID  C STIME TTY          TIME CMD
  3. root         1     0  0 Aug18 ?        00:00:10 /sbin/init splash
  4. root         2     0  0 Aug18 ?        00:00:00 [kthreadd]
  5. root         4     2  0 Aug18 ?        00:00:00 [kworker/0:0H]
  6. root         6     2  0 Aug18 ?        00:00:00 [mm_percpu_wq]
  7. root         7     2  0 Aug18 ?        00:00:00 [ksoftirqd/0]
  8. root         8     2  0 Aug18 ?        00:00:20 [rcu_sched]
  9. root         9     2  0 Aug18 ?        00:00:00 [rcu_bh]
  10. root        10     2  0 Aug18 ?        00:00:00 [migration/0]
  11. root        11     2  0 Aug18 ?        00:00:00 [watchdog/0]
  12. root        12     2  0 Aug18 ?        00:00:00 [cpuhp/0]
  13. root        13     2  0 Aug18 ?        00:00:00 [cpuhp/1]
  14. root        14     2  0 Aug18 ?        00:00:00 [watchdog/1]
  15. root        15     2  0 Aug18 ?        00:00:00 [migration/1]
  16. root        16     2  0 Aug18 ?        00:00:00 [ksoftirqd/1]
  17. alan     20506 20496  0 10:39 pts/0    00:00:00 bash
  18. alan     20520  1454  0 10:39 ?        00:00:00 nginx: master process nginx
  19. alan     20521 20520  0 10:39 ?        00:00:00 nginx: worker process
  20. alan     20526 20506  0 10:39 pts/0    00:00:00 man ps
  21. alan     20536 20526  0 10:39 pts/0    00:00:00 pager
  22. alan     20564 20496  0 10:40 pts/1    00:00:00 bash

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读