Мне нужно попытаться найти ProcessId процесса.
Изначально я делал:
application="/home/user/apps/appName.app"
appPid=$(pidof -x $application)
Это нормально работало.
Однако теперь выясняется, что приложение может запускаться из разных мест, например:
/home/user/apps/appName.app
/home/user/desktop/appName.app
/home/user/desktop/link to apps/appName.app
Итак, я попытался просто выполнить
application="appName.app"
appPid=$(pidof -x $application)
Но это не нашло совпадений. Я предполагаю, что pidof
требует для соответствия полный путь.
Как еще я могу получить ProcessId?
Думаю, мне нужно подробнее объяснить.
Если я сделаю
ps aux | grep application.app
, я получу два результата.
user 29912 . . . . /home/user/apps/application.app
user 12345 . . . . grep application.app
Если я сделаю
var1=`pgrep application.app`
echo $var1
, результат будет пустым. Это должно быть 29912.
Сам pgrep возвращает идентификаторы процессов. Используйте:
$pgrep <process_name>
$pgrep bash
3896
4013
4115
Если вы хотите сохранить вывод в переменной:
var1=`pgrep <appname>`
pids=`pgrep bash`
echo $pids
3896 4013 4115