Задать вопрос
@vasyaputin

Почему не работает автозагрузка в linux (другие способы автостарта ssh туннеля)?

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

1. Для этого я создал скрипт в init.d соответствии с образцом
sudo cp /etc/init.d/skeleton /etc/init.d/myscript && vi /etc/init.d/myscript

2. Отредактировал его, получилось так (скрипт работает, когда я запускаю его /etc/init.d/myscript start):
#! /bin/sh

### BEGIN INIT INFO

# Provides:          ssh
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

# Author: Foo Bar <foobar@baz.org>

. /lib/lsb/init-functions

# Function that starts the daemon/service

perform_start()
{
	log_daemon_msg "start tunnel"	
	sleep 20 && ssh root@5X.2XX.1XX.9X -R 5544:localhost:22  -i ~/.ssh/mykeys.pem
	return 0
}

# Function that stops the daemon/service

perform_stop()
{	
	log_daemon_msg "navernoe ne nuzhno"	
}

case "$1" in  
	start)
		perform_start
		;;
	stop)
		perform_stop
		;;
	*)
		echo "Usage: /etc/init.d/mysc {start|stop}"
		exit 3
		;;
esac

:


3. Добавил скрипт в уровни запуска вот так:

sudo update-rc.d myscript start 99 2 3 4 5 . stop 01 0 1 6 .

На что мне было отвечено:
using dependency based boot sequensing, что, как я нашел в гугле, является сообщением, а не ошибкой. (Хотя по инструкции, должна была последовать реакция Adding system startup for /etc/init.d/slave ...). Подозрение на этот этап.

4. Добавил права на выполнение вот так:
sudo chmod +x /etc/init.d/myscript

Автоматически не работает. Сам запускаю скрипт - работает. Логов загрузки в папке var/logs нет. При старте системы показываются скрипты, которые запускаются, моего скрипта там нет. Попробовал добавить свою строчку в конце последнего загружаемого скрипта - не работает.
Поставил sysv-tc-conf: мой скрипт там есть, уровни выставлены. Система bamt 1.3, это какой-то дебиан, как я понял. Папки /etc/init у меня в системе нет.

Мне очень нужно решить проблему автоподключения машины по ssh к серверу (она находится за nat) . Если есть соображения по моему методу или другие способы, с удовольствием выслушаю.
  • Вопрос задан
  • 7860 просмотров
Подписаться 3 Оценить 2 комментария
Ответ пользователя dnsaur К ответам на вопрос (9)
@dnsaur
Прописать путь к запускаемому файлу в /etc/rc.local ?
Ответ написан