Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Не обрабатывается rc.local  (Прочитано 1900 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн haba

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Не обрабатывается rc.local
« : 10 Сентября 2010, 10:54:49 »
Здравствуйте. Настраивал на Ubuntu шлюз для организации и заметил странность, всё что я прописал в rc.local по какой-то причине не обрабатывается при запуске, только после ручного старта. Вот содержимое rc.local:

root@haba-ubuntu:/etc# cat rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
#/sbin/iptables -I INPUT 1 -i eth0 -j ACCEPT
#/sbin/iptables -I INPUT 1 -i lo -j ACCEPT5
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
# -s 192.168.10.0/24
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d 85.198.124.18 --dport 5000 -j DNAT --to 192.168.10.10:3389
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d 85.198.124.18 --dport 50000 -j DNAT --to 192.168.10.10:3389
#/sbin/iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT
#/sbin/iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
sysctl -w net.ipv4.conf.all.forwarding=1
exit 0


Ubuntu 10.04 LTS
root@haba-ubuntu:/etc# ls -la | grep rc.local
-rwxr-xr-x   1 root    root      947 2010-09-10 10:52 rc.local



ЗЫ: Если еще кто сможет, расскажите почему форвард портов не пашет? :)
ЗЗЫ: Буду очень благодарен ответам ибо в организации часто свет тухнет, а от меня они в 70 км. :(

Оффлайн ksaver

  • Активист
  • *
  • Сообщений: 492
  • Это не я...
    • Просмотр профиля
Re: Не обрабатывается rc.local
« Ответ #1 : 10 Сентября 2010, 11:57:35 »
Можь, не успевает обрабатываться при перезагрузке? Если ему, скажем, sleep 10 в начало воткнуть, не?
Samsung NP305V5A-S06RU A6-3410MX APU AMD HD6470M/HD6520G RAM 6GB Ubuntu bionic 18.04 4.15.0-15(боевая)|budgie 18.04 4.15.0-15 (тестовая)

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: Не обрабатывается rc.local
« Ответ #2 : 10 Сентября 2010, 12:06:38 »
1. Вот этот ключ -e в шабанге #!/bin/sh -e заставляет скрипт завершаться сразу же после первой ошибки. Построчно все выполняется без ошибок?
2. Какой-то скрипт/приложение/черт_его_знает перезаписывает правила после выполнения rc.local
3. Что-нибудь безобидное типа touch /home/$USER/test_rclocal в конце скрипта отработает?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Не обрабатывается rc.local
« Ответ #3 : 10 Сентября 2010, 12:45:36 »
4. Старая песня про неподнятый интерфейс lo в /etc/network/interfaces. Хотя в ченджлоге недавних апдейтов проскакивало, что это вродекак пофиксили. Но не стоит упускать из виду.

Пользователь решил продолжить мысль 10 Сентября 2010, 12:47:08:
-e в шабанге #!/bin/sh -e заставляет скрипт завершаться сразу же после первой ошибки.
Если запущен не в интерактивном режиме, как он и запускается при старте системы. Если запускать ручками из терминала, то эффекта не будет.

Пользователь решил продолжить мысль 10 Сентября 2010, 12:49:35:
ЗЫ: Если еще кто сможет, расскажите почему форвард портов не пашет? :)
Интерфейс скорее всего неверный указан
« Последнее редактирование: 10 Сентября 2010, 12:49:35 от Mam(O)n »

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: Не обрабатывается rc.local
« Ответ #4 : 10 Сентября 2010, 13:41:12 »
-e в шабанге #!/bin/sh -e заставляет скрипт завершаться сразу же после первой ошибки.
Если запущен не в интерактивном режиме, как он и запускается при старте системы. Если запускать ручками из терминала, то эффекта не будет.

Что-то не могу воспроизвести.

echo '#! /bin/sh -e'>test
echo 'ls no_file_1; ls no_file_2'>>test
chmod +x test
./test
ls: невозможно получить доступ к no_file_1: Нет такого файла или каталога

echo '#! /bin/sh'>test
echo 'ls no_file_1; ls no_file_2'>>test
./test
ls: невозможно получить доступ к no_file_1: Нет такого файла или каталога
ls: невозможно получить доступ к no_file_2: Нет такого файла или каталога
« Последнее редактирование: 10 Сентября 2010, 13:51:03 от RustemNur »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Не обрабатывается rc.local
« Ответ #5 : 10 Сентября 2010, 13:51:18 »
Сорри, попутал видать с чем-то. Действительно не зависит.
Цитата: man bash
              -e      Exit immediately if a simple command (see SHELL GRAMMAR above) exits with a non-zero status.  The shell does not exit if the com‐
                      mand  that fails is part of the command list immediately following a while or until keyword, part of the test in an if statement,
                      part of a && or ││ list, or if the command’s return value is being inverted via !.  A trap on ERR, if set, is executed before the
                      shell exits.

 

Страница сгенерирована за 0.017 секунд. Запросов: 18.