ps -ef中 ef为什么必须写

现象分析

你先执行了 rsync --daemon,然后直接执行 ps 命令,发现 rsync --daemon 进程并没有立即显示出来。接着你执行了 ps -ef | grep daemon,这时 rsync --daemon 进程就显示出来了。

原因分析

  • rsync --daemon 的行为: rsync --daemon 命令启动 rsync 服务并将其放到后台运行。这意味着一旦启动成功,它就不会在前台终端中占用你的输入。
  • ps 命令的默认行为: ps 命令(process status)默认情况下只会显示当前用户在当前终端会话中运行的进程。由于 rsync --daemon 已经放到后台运行,并且可能不属于你当前 ps 命令执行时的用户(虽然截图中看起来是 root 用户),所以直接使用 ps 可能看不到它。
  • ps -ef | grep daemon 的行为:
    • ps -ef: 这个命令会列出系统上所有正在运行的进程的详细信息。
      • -e (environment): 显示所有进程的环境变量。在某些系统中,-e 可能等同于 -A
      • -f (full): 提供更详细的进程信息,例如父进程 ID (PPID)、启动时间等。
    • | (管道): 管道符号将 ps -ef 的输出传递给下一个命令 grep
    • grep daemon: grep 是一个强大的文本搜索工具,它会在 ps -ef 的输出中查找包含 “daemon” 字符串的行。因为 rsync --daemon 启动的进程命令行中包含 “–daemon”,所以 grep 会找到并显示这一行。

命令和参数含义及来源

下面我们来解释一下涉及到的命令和参数的含义及可能的单词来源:

  1. rsync

    • 含义: rsync 是一个强大的文件同步工具,可以在本地或远程计算机之间高效地同步文件和目录。它通过比较源和目标的差异来减少数据传输量。
    • 单词来源: “rsync” 的 “r” 可能代表 “remote” 或 “recursive”(因为它可以递归同步目录),而 “sync” 显然是 “synchronize”(同步)的缩写。因此,“rsync” 可以理解为 “远程同步” 或 “递归同步”。
  2. --daemon

    • 含义: 这是一个 rsync 的选项,指示 rsync 以守护进程(daemon)模式运行。
    • 单词来源: “daemon”(守护进程)是一个计算机术语,指在后台运行并且不与用户直接交互的计算机程序。这个词来源于希腊神话中的 “daimon”(δαίμων),指的是一种神灵或守护者的精神。在计算机领域,守护进程就像系统的守护者,默默地在后台执行任务,例如网络服务、日志记录等。
  3. ps

    • 含义: ps 是 “process status”(进程状态)的缩写,是一个用于显示当前运行进程信息的标准 Unix/Linux 命令。
    • 单词来源: 直接来源于其功能描述 “process status”。
  4. -e (在 ps -ef 中)

    • 含义: 显示所有进程的环境变量。在一些系统中,这个选项可能等同于 -A(显示所有进程)。
    • 单词来源: “e” 可能代表 “environment”(环境变量),或者在一些历史版本中可能代表 “everything”(所有进程)。
  5. -f (在 ps -ef 中)

    • 含义: 提供关于进程的完整格式化信息,包括父进程 ID (PPID)、运行用户、启动时间等。
    • 单词来源: “f” 很可能代表 “full”(完整)。
  6. | (管道)

    • 含义: 这是一个 Shell 管道操作符,用于将一个命令的输出作为另一个命令的输入。
    • 单词来源: 形象地表示数据流从一个命令“流”向另一个命令。
  7. grep

    • 含义: grep 是 “Global regular expression print”(全局正则表达式打印)的缩写,是一个强大的文本搜索工具,用于在输入中查找匹配指定模式的行,并将匹配的行打印出来。
    • 单词来源: 直接来源于其功能描述 “Global regular expression print”。

文章:理解 Linux 中的进程查看与守护进程

在 Linux 系统管理中,了解如何查看和管理运行中的进程至关重要。ps 命令是最常用的工具之一,它允许用户查看当前系统的进程状态。然而,ps 的默认行为可能不会显示所有我们感兴趣的进程,特别是那些在后台运行的守护进程。

进程状态查看工具 ps

ps 命令的基本功能是显示当前用户的活动进程。当你直接在终端中输入 ps 时,通常只会看到与当前终端会话相关的进程。这对于查看你刚刚执行的命令或者与当前 Shell 相关的进程很有用。

查看所有进程:-e-f 选项

要查看系统上的所有进程,我们需要使用 -e-A 选项。-e 选项会显示所有进程的环境变量,而在许多现代 Linux 系统中,它也等同于显示所有进程。-A 选项也具有相同的效果。

为了获取更详细的进程信息,我们通常会结合使用 -f 选项。这个选项会提供包括进程所有者、进程 ID (PID)、父进程 ID (PPID)、启动时间、CPU 使用率、内存使用情况以及完整的命令行等信息,帮助我们更全面地了解每个进程的运行状态。

守护进程:后台的系统服务

守护进程(daemon)是一种特殊的进程,它在后台运行,不与任何交互式用户会话关联。它们通常在系统启动时启动,并在后台持续运行,提供各种系统服务,例如网络服务、打印服务、系统监控等。

rsync --daemon 就是将 rsync 配置为一个守护进程。当你执行这个命令后,rsync 会在后台监听指定的端口,等待客户端的连接请求,以便提供文件同步服务。

使用 grep 过滤进程信息

由于系统上运行的进程非常多,直接查看所有进程的列表可能会让人眼花缭乱。这时,grep 命令就派上了用场。grep 允许我们根据指定的模式在文本中搜索行。通过将 ps 命令的输出通过管道 (|) 传递给 grep,我们可以只显示包含特定关键词的进程信息。

在你的例子中,ps -ef | grep daemon 的作用是:

  1. ps -ef 列出系统上所有进程的详细信息。
  2. | 将这些信息传递给 grep 命令。
  3. grep daemon 在接收到的文本中查找包含 “daemon” 字符串的行。

由于 rsync --daemon 启动的进程的命令行中包含 “–daemon”,所以 grep 能够找到并显示这个进程的信息,从而让你看到 rsync 守护进程正在运行。

总结

你遇到的现象是符合预期的。rsync --daemonrsync 服务放到后台运行,而 ps 默认只显示当前用户的终端进程。要查看所有进程,包括后台运行的守护进程,你需要使用 ps -ef 或类似的选项,并通过 grep 等工具进行过滤,以便找到你关心的特定进程。理解这些命令和参数的含义及来源,能够帮助我们更好地管理和监控 Linux 系统中的进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值