Системный журнал не работает, если программа запускается из init.d

  1. echo '123|456|789' | sed 's/|.*//'
  2. echo '123|456|789' | sed 's/^[0-9]*|//;s/|.*//'
  3. echo '123|456|789' | sed 's/.*|//'
  4. echo '123|456|789' | sed 's/|/ /g'

Или, если вам не жалко использоватьsed

  1. echo '123|456|789' | cut -f1 -d\|
  2. echo '123|456|789' | cut -f2 -d\|
  3. echo '123|456|789' | cut -f3 -d\|
  4. echo '123|456|789' | cut -f1,2,3 --output-delimiter=" " -d\|
1
20.06.2019, 15:42
1 ответ

Это была проблема с порядком загрузки, так как программа _A была запущена до процесса системного журнала и поэтому не могла использовать службу. Решение состоит в том, чтобы запустить этот скрипт:

 sudo update-rc.d Program_A.sh start 21 2 3 4 5. stop 21 0 1 6.

вместо

 sudo update-rc.d Program_A.sh defaults

обновление -rc.d создает символические ссылки на разных уровнях запуска, хранящихся в папках /etc/rc?.d. Теоретически, добавив в него заголовок LSBInit, Программа _A.sh должна автоматически разрешить порядок загрузки. Однако в случае с моими встроенными системами это не так.

Системный журнал имеет «загрузочный номер» 20, поэтому установка для моей программы _A более высокого порядка загрузки гарантирует, что программа _A будет запущена после системного журнала.

1
27.01.2020, 23:41

Теги

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