У меня есть сценарий запуска, который иногда запускается дважды (на несколько секунд) при загрузке системы (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
Спасибо!
Ваш скрипт не проверяет ввод, как действие, переданное в. Посмотрите документацию в /etc/init.d/README, /etc/init.d/skeleton и некоторые другие скрипты, такие как /etc/init.d/kmod, чтобы оценить, какое действие передается скрипту на выполнение (в $1) и принять соответствующий ответ на действие.
Ваш скрипт не проверяет ввод, как действие, переданное в. Посмотрите документацию в /etc/init.d/README, /etc/init.d/skeleton и некоторые другие скрипты, такие как /etc/init.d/kmod, чтобы оценить, какое действие передается скрипту на выполнение (в $1) и принять соответствующий ответ на действие.
Ваш скрипт не проверяет ввод, как действие, переданное в. Посмотрите документацию в /etc/init.d/README, /etc/init.d/skeleton и некоторые другие скрипты, такие как /etc/init.d/kmod, чтобы оценить, какое действие передается скрипту на выполнение (в $1) и принять соответствующий ответ на действие.