【问题标题】:Sudo gets separate PID when starting a commandsudo 在启动命令时获取单独的 PID
【发布时间】:2022-01-31 00:02:17
【问题描述】:

我不明白为什么在使用 sudo 启动 dockerd(例如 1628)时 sudo 会获得一个单独的 PID(例如 1620)?我应该向哪个 PID 发送 SIGTERM 来停止 dockerd?

ps aux | grep dockerd

pstree -ps

【问题讨论】:

    标签: linux bash docker-daemon


    【解决方案1】:

    我不明白为什么sudo 在使用 sudo 启动 dockerd(例如 1628)时会获得单独的 PID(例如 1620)?

    这正是sudo 的工作方式。它将命令作为子进程运行,因为它需要在子进程退出后执行操作。

    您可以调整 sudo 配置以使 sudo 不会派生子进程。在我的系统上,man sudo 说:

    "如果没有加载 I/O 日志插件并且策略插件没有定义 close() 函数,设置命令超时或要求命令在新的 pty 中运行,sudo 可以直接执行命令而不是将其作为子进程运行。”

    但请注意:

    • 它说可能而不是,并且
    • 您必须牺牲一些功能来实现这种“无分叉”行为。

    我应该向哪个 PID 发送 SIGTERM 来停止 dockerd?

    您可以向sudo 进程发送信号,它们将被中继到dockerd 进程。这就是man sudo 所说的。查看手册页中有关信号处理的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      相关资源
      最近更新 更多