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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: старт скрипта при загрузке ОС или при поднятии сети [РЕШЕНО]  (Прочитано 1192 раз)

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

Оффлайн DimmKo

  • Автор темы
  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
    • Image Hosting
Добрый день, подскажите, пожалуйста, как в Ubuntu 18.04 сделать автозапуск скрипта?
В 14.04 в /etc/network/interfaces была у меня строка:
post-up /home/user/start.sh

Сейчас используется netplan, но я не нашел информации как туда добавить.

Пробовал в crontab добавить:
@reboot /home/user/start.sh

не работает.

Исполняемый бит стоит, доступ к скрипту есть.

Так же вместо /home/user пробовал положить просто в /root

Спасибо.
« Последнее редактирование: 05 Июнь 2019, 18:47:19 от DimmKo »
Ubuntu Server 14.04.3 LTS | x86_64

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
Пробовал в crontab добавить:
@reboot /home/user/start.sh

не работает.

Неправда. Всё работает.

Покажите:

sudo cat /etc/crontab

Оффлайн bezbo

  • Старожил
  • *
  • Сообщений: 1485
    • Просмотр профиля
Пробовал в crontab добавить

sudo crontab -l
sudo -u $USER crontab -l
?

Оффлайн DimmKo

  • Автор темы
  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
    • Image Hosting
ecc83, ну у вас не правда, у меня правда.

Я же не стал бы просто так писать.

crontab -l
# m h  dom mon dow   command
@reboot /root/start.sh

ll /root/start.sh
-rwxr-xr-x 1 root root 69 Jun  4 15:53 /root/start.sh*

У меня в этом скрипте запускается (должен запускаться) openvpn с определнным конфигом. В 14.04 всё нормально было, а тут после перезагрузки - ничего.
Ubuntu Server 14.04.3 LTS | x86_64

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
в этом скрипте запускается (должен запускаться) openvpn
При старте сеть может запаздывать: поставьте задержку в скрипте секунд 20 или проверку на наличие сети. Или можно сделать сервис systemd
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн DimmKo

  • Автор темы
  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
    • Image Hosting
Azure, спасибо большое.
Нашел инструкцию - сложнее, чем просто скрипт туда воткнуть. Потому попробую сначала ее, а потом уж systemd.

И еще ща логи добавлю, а то забыл про них. Там что-то да будет написано.

Спасибо.
Ubuntu Server 14.04.3 LTS | x86_64

Оффлайн bezbo

  • Старожил
  • *
  • Сообщений: 1485
    • Просмотр профиля
openvpn с определнным конфигом

попробуйте networkd-dispatcher,

Цитировать
...
The daemon listens for signals from systemd-networkd over dbus, so it should be very light on resources (e.g. no polling). It is meant to be run as a system-wide daemon (as root). This allows it to be used for tasks such as starting a VPN after a connection is established.

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
ecc83, ну у вас не правда, у меня правда.

Я же не стал бы просто так писать.

По вашему в документации к крону написана неправда? А может это у вас ошибка при составлении правила?
Скрипт от какого пользователя должен запускаться?

И ещё, из вашей жалобы непонятно, "не запускается скрипт" это означает, что не срабатывает событие крона или же не выполняется действие, которое описано в скрипте, а крон всё же его запускает при старте?

Оффлайн DimmKo

  • Автор темы
  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
    • Image Hosting
ecc83, оййй
если бы Вы внимательно прочитали, то не писали бы сей ваш коммент.

Повторюсь: на Ubuntu 14.04  у меня в /etc/network/interfaces была строка:
post-up /home/user/start.shсейчас, в 18.04 используется netplan для настройки сети, и в нем, как я понял, уже нельзя вот так прописать.

Так же, как вариант, я попробовал в crontab добавить записать вида:
@reboot /home/user/start.shно ничего не происходит после перезагрузки.

Если руками скрипт запустить (от root) - всё ок.
Внутри скрипта - запуск openvpn с определенным конфигом.

Вот и всё.
Ubuntu Server 14.04.3 LTS | x86_64

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
ecc83, оййй
если бы Вы внимательно прочитали, то не писали бы сей ваш коммент.

Люблю таких вот "агрессивных чайников"

Я внимательно прочёл, поэтому у меня много вопросов, но ни на один вы не даёте ответа.

Так же, как вариант, я попробовал в crontab добавить записать вида:
@reboot /home/user/start.shно ничего не происходит после перезагрузки.

Дело в том, что "ничего не происходит" так не бывает. В лог заглядывали или сразу с жалобой на форум?
А происходит следующее, либо ошибка синтаксиса, либо если команда должна запускаться от root, тогда почему размещаете её в пользовательском кроне, у которого нет прав на запуск команд от root?
И ещё один вариант, это ваша команда запускается раньше, чем поднимается сетевой интерфейс.

Исходя из вышесказанного, Вы в состоянии объяснить, какая ошибка у Вас? Потому что "ничего не происходит" не лечится.



Оффлайн DimmKo

  • Автор темы
  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
    • Image Hosting
Люблю таких вот "агрессивных чайников"
пусть лучше кто-нибудь нормальный поможет, не тратье, пожалуйста, своё и моё время.
Спасибо.
Ubuntu Server 14.04.3 LTS | x86_64

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
пусть лучше кто-нибудь нормальный поможет

 ;D Как скажите.
Но даже самому доброму воспитателю, всё равно придётся ответить на вопросы, которые я задал.

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4721
  • Capture the truth
    • Просмотр профиля
DimmKo, cам скрипт покажите
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Radeon R7 260X :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3424
  • Ubuntu Budgie 18.04 х64
    • Просмотр профиля
DimmKo,

1) Да, в чьем кроне запуск прописан
2) Говорят, если команды имеют зависимости, то надо соблюдать порядок. Наверное глупости говорят
3) С 15.04 придумали systemd и сервисы. Но и это от лукавого...

Скрипт мне не интересен, причина и так уже назавана несколько раз: скрипт пытается выполнится до старта сетевых интерфейсов (пользоватся даже sleep не принято) или прав у пользователя нету...

P.S. Как правильно составить сервис можна даже глянуть сервис самого OpenVPN, а не изобретать костыли

Пользователь добавил сообщение 05 Июнь 2019, 17:49:36:
Но даже самому доброму воспитателю, всё равно придётся ответить на вопросы, которые я задал.
мне не надо) блудить среди двух деревьев я не хочу, как и рассказывать, как делать это неправильно
« Последнее редактирование: 05 Июнь 2019, 17:49:36 от EvangelionDeath »
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Samsung SSD 860 EVO 250GB/Ubuntu Budgie 18.04

Оффлайн DimmKo

  • Автор темы
  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
    • Image Hosting
ecc83, Azure, ALiEN175, EvangelionDeath, всем спасибо за внимание и помощь.

Да, моя вина: забыл указать пользователя в чей cron делаю запись - root.

Так же прошу прощения, что совсем забыл про логи - очень каюсь, впредь буду внимателен.

В итоге: заработало через crontab, а именно:
(Нажмите, чтобы показать/скрыть)

сам скрипт:
(Нажмите, чтобы показать/скрыть)


EvangelionDeath, если честно, не понимаю вашего сарказма.
Я же написал, что скрипт рабочий, но вы почему-то игнорируете это и пишите мне всякое. Непонятно.

Пользователь добавил сообщение 05 Июнь 2019, 18:49:32:
скрипт пытается выполнится до старта сетевых интерфейсов (пользоватся даже sleep не принято)
в этом и беда, как оказалось, т.к. раньше он запускался после старта сетевых интерфейсов, но в Netplan такого нет.
« Последнее редактирование: 05 Июнь 2019, 18:58:40 от DimmKo »
Ubuntu Server 14.04.3 LTS | x86_64

 

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