Как я проверяю, работает ли определенное приложение его именем файла? Или если это не возможно, затем его командной строкой? Я знаю, что "pkill" имеет опцию "-f", но я не должен уничтожать его, просто проверьте.
Обновление:
Я хочу получить состояние определенного приложения (приложений) только в ударе, предпочтительном, если я не должен фильтровать вывод к поиску состояние приложения, я хочу проверить состояние.
Если это имеет значение, это - Python или рубиновый сценарий, я должен проверить состояние на них обоих.
Править
Так как Вы спросили, как проверить, работает ли процесс или не, когда Вы знаете его имя, затем это - простое pgrep
операция. С другой стороны, можно было использовать ps
и укажите state
опции для форматирования
$ ps --no-headers -C firefox -o args,state
/usr/lib/firefox/firefox R
Код состояния справа. От man ps
можно знать их значение:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped, either by a job control signal or because it is
being traced
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by
its parent
Исходный
Большую часть времени консольные приложения, запущенные с их собственным именем. Если это - сценарий с a !#
строка на вершине, это будет работать с интерпретатором, указанным с той строкой, например, сценарий удара:
$ ps -ef | grep batmon
root 2108 1 0 22:22 ? 00:00:00 /bin/bash /home/xieerqi/bin/batmon.sh
Однако существуют сценарии что сервер как обертка для других приложений. Например, gnome-terminal
на самом деле сценарий, который звонит gnome-terminal.real
Что Вы всегда помещаете приложение в фон, который скажет Вам pid того процесса
$ bin/batmon.sh &
[1] 3224
Затем можно использовать kill PID
(например, здесь kill 3224
) закрыть приложение непосредственно или использование ps
найти его имя:
$ ps --no-headers -p 3224 -o %a
/bin/bash bin/batmon.sh
В целом, pkill
может искать имена, данные без -f
, который обозначает полное имя. Вы могли также искать использование pgrep appNamePartial
Если Вы хотите жить, отслеживают процессы, у Вас может быть известная команда:
top
но Вы хотите это именем файла, таким образом, необходимо будет добавить параметр как:
top -c