Почему мой сценарий не ожидает запуска сетевого сервиса перед запуском?

Я использую Debian 8 и настроил скрипт и поместил его в каталог /etc/init.d, как показано ниже. В принципе, я хочу открыть ssh туннели при запуске.

#! /bin/sh # /etc/init.d/open_tunnels ### BEGIN INIT INFO # Provides: open_tunnels # Required-Start: $network $syslog $remote_fs # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO case "$1" in start) echo "Running open_tunnels..." <ssh command> ;; stop) killall open_tunnels ;; *) echo "Usage: /etc/init.d/open_tunnels start" exit 1 ;; esac exit 0 

Затем я добавил службу

 insserv open_tunnels 

Но, когда я запускаю систему, я получил это в syslog:

 open_tunnels[522]: ssh: connect to host <IP> port 22: Network is unreachable 

Я уверен, что команда ssh работает хорошо, потому что я использую ее в своей системе (после входа в систему). Я просто хочу, чтобы он исполнялся при запуске.

Здесь что-то не хватает?

One Solution collect form web for “Почему мой сценарий не ожидает запуска сетевого сервиса перед запуском?”

Прочтите https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ для исчерпывающего рассмотрения этого вопроса. Основная проблема заключается в следующем:

То, что именно требуется для $network не является очевидным и может быть различным в зависимости от локальной конфигурации.

Systemd дает вам лучшие инструменты, подробно описанные выше. В принципе, вы захотите

 [Unit] Require = network-online.target After = network-online.target 

в вашем файле пользовательских сервисов и надеемся, что ваша служба управления сетью обеспечит хорошо управляемую сеть- network-online.target .

Если вы не хотите заменять свой скрипт init файлом службы systemd, создайте каталог /etc/systemd/system/open_tunnels.service.d и поместите вышеуказанные 3 строки в любой файл (с расширением .conf ) в этом каталоге , Это увеличит описание сервиса, созданного с помощью уровня совместимости с SysV-системой systemd, как описано в man systemd.unit .

  • Отключение X-сервера на Fedora 17
  • Запустить скрипт python sudo (или startup) из cron на малиновой Pi?
  • как правильно задержать выполнение сценария запуска на основе проверенного состояния?
  • Запустить скрипт при загрузке?
  • Какой приоритет я должен дать скрипту, запущенному при запуске?
  • Запуск Tomcat Service при запуске CentOS / RHEL / Fedora
  • как запустить запуск скрипта на live-дистрибутиве?
  • Запустить приложение SWT после запуска системы
  • Параметры времени выполнения для службы systemd
  • Программное создание файла .desktop для автозапуска приложения
  • Автозапуск приложения GUI в Debian как root
  • Linux и Unix - лучшая ОС в мире.