Служба перезапуска Systemd, если одна из процессы в группе управления не работают

А как насчет:

$ echo 1.000000000000002, 0.999999999999999, 999.000999000999|
   sed 's/\([09]\)\1\{2,\}/\1..\1/g'
1.0..02, 0.9..9, 9..9.0..09..90..09..9

Это [09] , за которым следует сам ( \ 1 является обратной ссылкой на [09] , захваченной в группе захвата \ ([09] \) ), повторенной 2 или более раз. Обратите внимание, что он отличается от [0-9] \ {3, \} , который соответствует 0000 , но также 0909 .

Не все синтаксисы регулярных выражений поддерживают обратные ссылки.Стандартные базовые регулярные выражения, используемые sed do, стандартные расширенные регулярные выражения (например, в egrep ) не поддерживают его, хотя некоторые реализации ERE поддерживают его как расширение . Это случай GNU sed с параметром -r / -E (другое нестандартное расширение), с которым вы можете использовать sed -E 's / ([09]) \ 1 {2,} / \ 1 .. \ 1 / g' здесь.

Perl и совместимые регулярные выражения работают, и похоже, что регулярные выражения MATLAB также поддерживают их , и даже поддерживают именованные обратные ссылки , как в perl .

3
17.03.2017, 07:50
2 ответа

От help wait:

При наличии опции -n ожидает завершения следующего задания и возвращает статус завершения.

Таким образом, вы можете использовать wait -n в своем сценарии, чтобы узнать, когда любое из заданий завершилось.

0
27.01.2020, 21:30

Контрольные группы не являются заданиями.

Не существует такой вещи, как «отказ контрольной группы». Группы управления - это просто коллекции, используемые для ограничения ресурсов. Они не «подводят».

Что здесь происходит, так это неспособность правильно спроектировать службу. Если у вас есть несколько процессов-демонов, которые нужно отслеживать, и вы хотите, чтобы диспетчер служб перезапускал их по отдельности, если они завершаются, тогда следует определить несколько служб.

Дополнительная литература

2
27.01.2020, 21:30

Теги

Похожие вопросы