【问题标题】:restrict pidof to own processes限制 pidof 拥有自己的进程
【发布时间】:2016-01-25 18:02:20
【问题描述】:

在 bash 中,

pidof unison

将列出所有用户的统一进程。但是我只对在我的 uid 下启动的实例感兴趣。

我怎样才能做到这一点?

我想做什么: 我定期使用一致在多台机器上同步多个帐户。但是,如果当前用户手动启动了同步,我希望不开始同步。

【问题讨论】:

    标签: bash process pid


    【解决方案1】:

    你可以改用pgrep,比如

    pgrep -u <userid> unison
    

    这将返回具有给定用户 euid 的统一进程的 pid 列表。

    【讨论】:

    • 请注意,如果有任何其他进程的名称包含“unison”,您可能需要使用-x 参数强制精确 匹配pgrep。 (例如,pgrep -u ferd gvfsd 在我的系统上返回 9 个 PID,而pgrep -xu ferd gvfsd 只匹配一个。)这与默认执行精确匹配的pidof 不同。
    【解决方案2】:

    您可以像这样解析ps 输出:

    ps -ef | grep unison | grep -v grep | grep "${USER}" | awk '{print $2}'

    【讨论】:

    • 这可行,但 Eric 的解决方案更方便一些。
    猜你喜欢
    • 2013-05-09
    • 2019-11-19
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2020-03-01
    • 2012-04-19
    • 2019-03-28
    相关资源
    最近更新 更多