Страницы

Поиск по вопросам

среда, 10 октября 2018 г.

Как сохранить pid процесса в переменную

Файл tmp/pids/server.pid содержит одну строчку - номер процесса.
Как получить эту строчку и присвоить это значение в переменную?
В итоге нужно просто убить процесс через kill -9


Ответ

Воспользуйтесь подстановкой команд $(command). Bash выполненит команду в sub-shell и заменит конструкцию подстановки содержимым стандартного выводa команды. Например:
$ echo 9999 >tmp/pids/server.pid $ pid=$(Подробнее в мануале bash. И что конкретно касается темы вопроса, цитирую:
The command substitution $(cat file) can be replaced by the equivalent but faster $(< file).

PS Без промежуточного сохранения в переменную, можно воспользоваться утилитой pkill, если опция -F доступна. Вернёт 0, если найдёт мин. один процесс:
$ pkill -F tmp/pids/server.pid $ echo $? 1

Комментариев нет:

Отправить комментарий