Я хочу определить, работает ли какой-то определенный процесс. Процесс имеет очень длинное описание, более или менее похожее на
/usr/bin/xpdf -remote myXpdfServer -title Bayes2_notes -papercolor cornsilk -geometry 1910x1019+0+29 /home/simon/research/Ward/Bayes2_notes.pdf
Мне иногда приходится использовать xterm с небольшим количеством столбцов, например n. В этом случае, если я запустил ps -ef, тогда grep для некоторого элемента, находящегося далеко в хвосте этой строки, ps обрезает строку, возвращая только первые n символов, а моя команда grep терпит неудачу.
To исправить это, я пробовал ps efo cmd | grep и т. д. Это помогает некоторым, но не настолько, насколько мне нравится. Например, очевидная команда для попытки:
ps eco cmd | grep xpdf | grep -v grep
возвращает следующее:
| .................... .............. \ _ / usr / bin / xpdf -remote myXpdfServer
, где эти точки обозначают пробелы, которые не отображаются на этом форуме. Я бы очень хотел избавиться от мусора, особенно пробела, в начале, т. Е. Все, что предшествует / usr. Обратите внимание, что в этом случае не удастся обрезать конвейер или sed или что-то еще: длина строки, возвращаемой ps, определяется количеством столбцов xterm, поэтому сокращение этой строки после обработки не может мне помочь, потому что строка, которую мне нужно исследовать, уже была усечена к тому времени, когда разрезается делать что-то. Я уверен, что единственный способ сделать то, что я хочу сделать, - добавить другой флаг в команду ps ef.
Большое спасибо за любой совет!
Я бы использовал
pidof nameofyourprogram
См. справочную страницу о статусе существующего состояния.