Abt*_*Pst 1 linux command-line xargs
我想获取某些进程的运行时间。这就是我正在做的事情
ps -ef | grep "python3 myTask.py" | awk '{print $2}' | xargs -n1 ps -p {} -o etime
Run Code Online (Sandbox Code Playgroud)
我想通过以下方式获取pid
ps -ef | grep "python3 myTask.py" | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
然后将这些传递给
ps -p {} -o etime
Run Code Online (Sandbox Code Playgroud)
通过使用 xargs,但它不起作用。我明白了
error: process ID list syntax error
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).
error: process ID list syntax error
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
小智 5
您可以使用以下命令:
pgrep -f "python3 myTask.py" | xargs -i{} ps -p {} -o etime
Run Code Online (Sandbox Code Playgroud)
pgrep
- 根据名称和其他属性查找或发出信号处理。
-f, --full
- 该模式通常仅与进程名称匹配。设置 -f 时,将使用完整命令行。
如需进一步阅读,请参阅man pgrep
。
该段中缺少的部分xargs
是-i{}
,它为每个参数调用命令,而 {} 将被它替换。
-i[replace-str], --replace[=replace-str]
- 如果指定了replace-str,则此选项是-Ireplace-str 的同义词。
如需进一步阅读,请参阅man xargs
。