当存在多个用户进程时从 processid 获取用户
Getting User from processid when multiple user processes exist
我正在尝试调整一个 bash 脚本以在有多个应用程序 运行 宁作为 masterId 时拉回单个应用程序帐户的 PID。这曾经在个人用户帐户下 运行,但最近的更改迫使应用程序在组合 "masterId" 下所有 运行,但仍然保持一个唯一的应用程序 ID,我可以 grep 反对。
正常
pgrep -u "appId"
会给我一个 PID。现在我必须 运行:
pgrep -u "masterId"
它 returns 所有 PID(每个都是它自己的应用程序)。
1234
2345
3456
我正在尝试想出一个命令来仅返回 appAccount(n) 的 PID,这样我就可以将其通过管道传输到其他有用的命令中。我可以做一个双 grep(这更接近我想要的):
ps aux | grep -i "masterId" | grep -i "appAccount(n)"
这将使我获得整个单个进程的信息,但我只想让 PID 执行类似以下操作:
ps aux | grep -i "masterId" | grep -i "appAccount(n)" | xargs sudo -u appAccount(n) kill -9
如何修改上面的初始命令以仅获取 PID?有更好的方法吗?
pgrep --euid "masterId" --list-full | awk '/appAccount(n)/ {print }'
输出完整的进程命令行,然后select具有所需帐户的命令行并打印第一个字段(pid)。
我正在尝试调整一个 bash 脚本以在有多个应用程序 运行 宁作为 masterId 时拉回单个应用程序帐户的 PID。这曾经在个人用户帐户下 运行,但最近的更改迫使应用程序在组合 "masterId" 下所有 运行,但仍然保持一个唯一的应用程序 ID,我可以 grep 反对。
正常
pgrep -u "appId"
会给我一个 PID。现在我必须 运行:
pgrep -u "masterId"
它 returns 所有 PID(每个都是它自己的应用程序)。
1234
2345
3456
我正在尝试想出一个命令来仅返回 appAccount(n) 的 PID,这样我就可以将其通过管道传输到其他有用的命令中。我可以做一个双 grep(这更接近我想要的):
ps aux | grep -i "masterId" | grep -i "appAccount(n)"
这将使我获得整个单个进程的信息,但我只想让 PID 执行类似以下操作:
ps aux | grep -i "masterId" | grep -i "appAccount(n)" | xargs sudo -u appAccount(n) kill -9
如何修改上面的初始命令以仅获取 PID?有更好的方法吗?
pgrep --euid "masterId" --list-full | awk '/appAccount(n)/ {print }'
输出完整的进程命令行,然后select具有所需帐户的命令行并打印第一个字段(pid)。