скрипт init.d / rc2.d выполняется дважды

У меня есть сценарий запуска, который иногда запускается дважды (на несколько секунд) при загрузке системы (Ubuntu 16.04.3 LTS). Иногда он запускается только один раз! Скрипт находится в /etc/init.d/TEST, и у меня есть symlink /etc/rc2.d/S99TEST, который указывает на скрипт.

Проблема заключается в том, что при загрузке системы скрипт иногда выполняется дважды, с паузой в несколько секунд между ними. Как я могу отладить это? Я не вижу упоминания имени сценария в любом из системных журналов (/ var / log / *). Я растерялся.

Вот сценарий:

#!/bin/bash ### BEGIN INIT INFO # Provides: test_boot # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: test_boot # Description: test_boot app ### END INIT INFO exec 3>&1 4>&2 trap 'exec 2>&4 1>&3' 0 1 2 3 exec 1>>/home/username/TEST.log 2>&1 echo "---" echo "---" echo "Starting: $(date)" sleep 2 echo "User: $(whoami)" echo "Caller: $(ps -o args= $PPID)" sleep 2 echo "Done: $(date)"

Вот файл TEST.log после чистой загрузки:

--- --- Starting: Mon Feb 12 21:26:35 UTC 2018 User: root Caller: /sbin/init tegra_keep_boot_clocks Done: Mon Feb 12 21:26:39 UTC 2018 --- --- Starting: Mon Feb 12 21:26:59 UTC 2018 User: root Caller: /sbin/init tegra_keep_boot_clocks Done: Mon Feb 12 21:27:03 UTC 2018

Спасибо!

1
задан 13 February 2018 в 01:41

3 ответа

Ваш скрипт не проверяет ввод, как действие, переданное в. Посмотрите документацию в /etc/init.d/README, /etc/init.d/skeleton и некоторые другие скрипты, такие как /etc/init.d/kmod, чтобы оценить, какое действие передается скрипту на выполнение (в $1) и принять соответствующий ответ на действие.

1
ответ дан 22 May 2018 в 13:08

Ваш скрипт не проверяет ввод, как действие, переданное в. Посмотрите документацию в /etc/init.d/README, /etc/init.d/skeleton и некоторые другие скрипты, такие как /etc/init.d/kmod, чтобы оценить, какое действие передается скрипту на выполнение (в $1) и принять соответствующий ответ на действие.

1
ответ дан 17 July 2018 в 20:57

Ваш скрипт не проверяет ввод, как действие, переданное в. Посмотрите документацию в /etc/init.d/README, /etc/init.d/skeleton и некоторые другие скрипты, такие как /etc/init.d/kmod, чтобы оценить, какое действие передается скрипту на выполнение (в $1) и принять соответствующий ответ на действие.

1
ответ дан 23 July 2018 в 21:37

Другие вопросы по тегам:

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