автостарт скрипта (Установка маршрутов при запуске системы)

Cent OS, Scientific Linux

Модератор: Модераторы разделов

Ответить
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

автостарт скрипта

Сообщение gesigor »

Здравствуйте!
Имеется машина с fedora 19 с двумя сетевыми интерфейсами. Нужно прописать маршруты при запуске. Пробовал сделать /etc/rc.d/rc.local:

Код: Выделить всё

#!/bin/sh

/sbin/route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1
/sbin/route add -net 192.168.101.0 netmask 255.255.255.0 gw 192.168.100.1
/sbin/route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.100.1

Проверка:

Код: Выделить всё

systemctl status rc-local.service
rc-local.service - /etc/rc.d/rc.local Compatibility
          Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static)
          Active: failed (Result: exit-code) since Thu, 03 Oct 2013 15:29:39 +0400; 1min 8s ago
         Process: 637 ExecStart=/etc/rc.d/rc.local start (code=exited, status=7)
          CGroup: name=systemd:/system/rc-local.service

Также пробовал так:

Код: Выделить всё

my_start.service
[Unit]
Description=Run my stuff
Requires=network.target
After=network.target

[Service]
Type=oneshot
RemainAfterExit=True
ExecStart=/etc/rc.d/my_script

[Install]
WantedBy=multi-user.target

Включаю:

Код: Выделить всё

systemctl enable my_start.service

Проверка:

Код: Выделить всё

systemctl status my_start.service
my_start.service - Run my stuff
          Loaded: loaded (/usr/lib/systemd/system/my_start.service; enabled)
          Active: active (exited) (Result: exit-code) since Thu, 03 Oct 2013 15:29:39 +0400; 1min 23s ago
         Process: 634 ExecStart=/etc/rc.d/my_script (code=exited, status=7)
          CGroup: name=systemd:/system/my_start.service

Если запустить вручную, тоесть в терминале в графике, то все работает. Вопрос, как можно прописать маршруты?
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20790
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: автостарт скрипта

Сообщение Bizdelnick »

Во-первых, задача изначально поставлена неверно. Маршруты надо прописывать не при старте системы, а при поднятии сетевого интерфейса. Делается это вполне штатным способом, описанным в документации. В какой именно документации - зависит от того, используется ли NM.
Если нет - см. https://docs.fedoraproject.org/en-US/Fedora...tic-routes.html, если да - а оно Вам надо? не знаю, ищите, но он это точно умеет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gesigor
Сообщения: 403
ОС: Fedora 30
Контактная информация:

Re: автостарт скрипта

Сообщение gesigor »

Спасибо. Посмотрю, а задачу решил. Видимо скрипт запускался все равно раньше поднятия сети.
Решение:

Код: Выделить всё

systemctl enable NetworkManager-wait-online.service

Это на тот случай, если надо что-либо запустить в автомате после поднятия сети.
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
yurkats
Сообщения: 70
ОС: Fedora

Re: автостарт скрипта

Сообщение yurkats »

создаешь файл /etc/sysconfig/network-scripts/route-eth0
ну или route-eth1, как там интерфесы называются твои...
в нем пишешь:
#==================
192.168.100.0/24 via 192.168.100.1 dev eth0
192.168.101.0/24 via 192.168.100.1 dev eth0
192.168.1.0/24 via 192.168.100.1 dev eth0
#==================

потом делаешь systemctl restart network.service
всё должно работать
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: автостарт скрипта

Сообщение Vascom »

gesigor писал(а):
03.10.2013 16:33
Спасибо. Посмотрю, а задачу решил. Видимо скрипт запускался все равно раньше поднятия сети.
Решение:

Код: Выделить всё

systemctl enable NetworkManager-wait-online.service

Это на тот случай, если надо что-либо запустить в автомате после поднятия сети.

Да, это надо включать, если хочется что-то запускать именно после поднятия сети.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20790
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: автостарт скрипта

Сообщение Bizdelnick »

Костыль в rc.local до добра не доведёт - маршруты будут отваливаться при переподнятии интерфейса.

Эксгумировал виртуалку с федорой, потыкал мышкой в нетворкманагере. ПКМ по апплету -> изменить соединения -> тыц в интерфейс -> Изменить -> Параметры IPv4 -> Маршруты -> Добавить -> OK -> Сохранить -> Закрыть
Погрепал /etc - выяснилось, что прописался маршрут всё в тот же /etc/sysconfig/network-scripts/route-<интерфейс>.

Но если это сервер (или десктоп, выполняющий и функции сервера), то мой совет - отрубите NetworkManager и настройте сеть по старинке.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: автостарт скрипта

Сообщение Ism »

Мои сообщения случайно оказались в корзине, видно глюк форума. Перезалив

А не проще прописать в /etc/rc.d/rc.local ?
Код
sleep 15 && команда после подключения сети

Это работает без костылей, хотя и с задержкой. Это самый простой и надежный способ
Спасибо сказали:
Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: автостарт скрипта

Сообщение Aectann »

Ism писал(а):
05.10.2013 06:45
Мои сообщения случайно оказались в корзине, видно глюк форума. Перезалив

А не проще прописать в /etc/rc.d/rc.local ?
Код
sleep 15 && команда после подключения сети

Это работает без костылей, хотя и с задержкой. Это самый простой и надежный способ

Ваши сообщения в "Корзине" оказались не случайно. Прописывание чего-либо в rc.local - это древний костыль в любом дистрибутиве, а уж тем более в дистрибутивах, в которых есть развитые инструменты настройки запуска сервисов/команд при старте.
Пожалуйста, не давайте вредных советов вопрошающим, тем более по дистрибутивам, в настройке которых не разбираетесь (в этих случаях лучше не писать ничего).
My god... it's full of stars!...
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: автостарт скрипта

Сообщение Ism »

Aectann писал(а):
05.10.2013 13:07
Ism писал(а):
05.10.2013 06:45
Мои сообщения случайно оказались в корзине, видно глюк форума. Перезалив

А не проще прописать в /etc/rc.d/rc.local ?
Код
sleep 15 && команда после подключения сети

Это работает без костылей, хотя и с задержкой. Это самый простой и надежный способ

Ваши сообщения в "Корзине" оказались не случайно. Прописывание чего-либо в rc.local - это древний костыль в любом дистрибутиве, а уж тем более в дистрибутивах, в которых есть развитые инструменты настройки запуска сервисов/команд при старте.
Пожалуйста, не давайте вредных советов вопрошающим, тем более по дистрибутивам, в настройке которых не разбираетесь (в этих случаях лучше не писать ничего).

Мой совет правильный, если бы вы видели костыли при монтировании CIFS
Инструменты старта в разных дистрибах могут работать по разному, а мой вариант работает везде без изменений
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20790
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: автостарт скрипта

Сообщение Bizdelnick »

Ism писал(а):
06.10.2013 17:13
мой вариант работает

Он именно что не работает. ifdown && ifup - всё, нет маршрутов.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить