Bash однострочный, который принимает выходные данные pidof и передает их в качестве аргументов strace? - PullRequest
0 голосов
/ 27 мая 2020

Я хочу получить PID заданного имени процесса и присоединить к их выходам с помощью strace. Я могу сделать это вручную вот так:

$ pidof foobar
1234 2345 
$ strace -p1234 -p2345 -s9999 -e write

Отлично! Но я хочу автоматизировать это из Ansible, поэтому мне нужно выполнить оба этих шага в Bash, то есть без ручного преобразования двух числовых c PID в два -p аргумента.

I Я пробовал много вещей, таких как создание массива из PID и попытка присоединиться к массиву с помощью -p, но как только он станет таким сложным, вам нужно создать функцию, и у меня нет большой возможности для этого с Ansible однострочный.

Спасибо!

Ответы [ 2 ]

1 голос
/ 27 мая 2020

strace s -p также принимает список PID, все, что вам нужно, это:

strace -p "$(pidof foobar)" -s 9999 -e write
0 голосов
/ 27 мая 2020

strace может поддерживать pidof вывод в формате:

-p "`pidof PROG`"

Следуя ответу Огуза, я определил, что работает следующее:

strace -p "`pidof foobar`" -s9999 -e writ
...