У меня есть выскочка конфигурации для службы, которая должна проверять наличие процесса при его запуске. Это звучит довольно легко, но я уже 3 часа пытаюсь решить эту проблему, и я заблудился. Кажется, проблема в том, что некоторые операторы grep приводят к выходу скрипта из upstart, что приводит к сбою при запуске сервиса. Но выскочка ничего не регистрирует, она просто выходит из сценария и исчезает.
Ниже приведены несколько примеров строк, которые вызывают проблему: первое эхо и выходные данные его grep регистрируются, второе эхо регистрируется, но не выводятся его grep. После второго выскочка эха просто выходит из скрипта и останавливается. Проблема заключается в добавлении опции -v или чего-то другого, например, использования классов регулярных выражений, таких как [[: digit:]]. Кажется, мне нужно убежать от некоторых персонажей, но я просто не знаю как. Простое -v или что-то подобное не работает.
script
echo grep
ps ax | grep "postgres: wal writer process" | grep "grep"
echo grep2
ps ax | grep "postgres: wal writer process" | grep -v "grep"
end script
У кого-нибудь есть представление о том, что я делаю неправильно и как решить проблему?