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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Выполнение команды cron через несколько минут после перезагрузки системы  (Прочитано 921 раз)

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

Оффлайн blacksmithh

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
  • Ubuntu 18.04
    • Просмотр профиля
Всем привет!
На сервере работает icecast, после перезагрузки системы приходится в ручную запускать потоки(сам icecast стартует), в планировщике прописывал задание на запуск потоков после загрузки системы, но ничего не получилось, по всей видимости icecast позже загружается.

Возможно ли написать задание что бы потоки запускались к примеру через 3 минуты после загрузки системы?
Пробовал вот такое задание: @reboot sudo ices -c /usr/local/etc/music.conf
ASUS Z170 Mini ITX, Intel Core i7-6700 Skylake 3.4Ghz, HD Graphics 530, Deepcool Storm Gabriel, HyperX FURY DDR4 2133Mhz 8Gb, WD Red 2Tb X2, Thermaltake Core V1. Ubuntu 18.04

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
через 3 минуты после загрузки системы
Скрипт запуска положить в .sh файл, и там же добавить:
sleep 180
Debian Testing (Gnome), Ubuntu Server 18.04

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4712
  • Capture the truth
    • Просмотр профиля
кошернее разобраться с таргетами systemd и оперировать непосредственно systemd-сервисами.
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн blacksmithh

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
  • Ubuntu 18.04
    • Просмотр профиля
кошернее разобраться с таргетами systemd и оперировать непосредственно systemd-сервисами.
Вернулся я к этому вопросу, с cron и командой sleep ничего не вышло, а вот c Systemd получилось:
[Unit]
Description=Ices Service
After=network.target

[Service]
Type=forking
PIDFile=/tmp/ices.pid
ExecStart=-/usr/local/bin/ices -c /usr/local/etc/maximum.xml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target
Перезагрузил систему, поток запустился. Но теперь возник другой вопрос, потоков у меня шесть, в параметре ExecStart= пробовал прописывать через ";" запускается только один последний:
[Unit]
Description=Ices Service
After=network.target

[Service]
Type=forking
PIDFile=/tmp/ices.pid
ExecStart=-/usr/local/bin/ices -c /usr/local/etc/retro.conf; ices -c /usr/local/etc/ultra.conf; ices -c /usr/local/etc/maximum.conf; ices -c /usr/local/etc/alternative.conf; ices -c /usr/local/etc/russian_rock.conf; ices -c /usr/local/etc/trance.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target
Создал шесть Systemd сервисов, т.е. для каждого потока свой, все запускаются без проблем. Правильно ли это? Хотелось бы все в один Systemd записать..
« Последнее редактирование: 26 Январь 2021, 18:57:13 от blacksmithh »
ASUS Z170 Mini ITX, Intel Core i7-6700 Skylake 3.4Ghz, HD Graphics 530, Deepcool Storm Gabriel, HyperX FURY DDR4 2133Mhz 8Gb, WD Red 2Tb X2, Thermaltake Core V1. Ubuntu 18.04

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3424
  • Ubuntu Budgie 18.04 х64
    • Просмотр профиля
1) Потоки должны стартовать раньше или позже icecast (укажите в конфигурации юнита)
2) Для каждого потока лучше использовать всой systemd файл

PS. И для последующих исполнимых файлов у вас полный путь не прописан
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Samsung SSD 860 EVO 250GB/Ubuntu Budgie 18.04

Оффлайн blacksmithh

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
  • Ubuntu 18.04
    • Просмотр профиля
1. По времени позже самого icecast, т.к. он не сразу стартует.
2. т.е. шесть созданных файлов для каждого потока это нормальная практика?
p.s. не совсем понял, подскажите пожалуйста.
ASUS Z170 Mini ITX, Intel Core i7-6700 Skylake 3.4Ghz, HD Graphics 530, Deepcool Storm Gabriel, HyperX FURY DDR4 2133Mhz 8Gb, WD Red 2Tb X2, Thermaltake Core V1. Ubuntu 18.04

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4712
  • Capture the truth
    • Просмотр профиля
Я бы через переменные попробовал
Допустим,
/etc/systemd/system/ices@.service #собака нужна!
Код: (txt) [Выделить]
[Unit]
Description=Ices Service on %i
After=network.target

[Service]
Type=forking
PIDFile=/tmp/ices.pid
ExecStart=-/usr/local/bin/ices -c /usr/local/etc/%i.xml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target

Код: (bash) [Выделить]
systemctl enable ices@retro
systemctl enable ices@ultra
systemctl enable ices@maximum
#... и т.д.

За правильность не ручаюсь, что вспомнил, то вспомнил, у себя проверить не смогу - пробуйте сами.
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн Domitory

  • Участник
  • *
  • Сообщений: 200
    • Просмотр профиля
Планировщик anacron не подходит для этой задачи?

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4712
  • Capture the truth
    • Просмотр профиля
Планировщик anacron не подходит для этой задачи?
задания anacron умеют выполняться сразу после поднятия сети? 
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн blacksmithh

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
  • Ubuntu 18.04
    • Просмотр профиля
Я бы через переменные попробовал
Спасибо! Интересный вариант, попробую! :)
Вчера пока что остановился на варианте из шести Systemd, для каждого потока. При загрузке системы все стартует, все работает.
ices.service - Ices Service Maximum
   Loaded: loaded (/etc/systemd/system/ices.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-01-26 20:18:37 MSK; 11h ago
  Process: 11991 ExecStart=/usr/local/bin/ices -c /usr/local/etc/maximum.xml (code=exited, status=1/FAILURE)
 Main PID: 11992 (ices)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/ices.service
           └─11992 /usr/local/bin/ices -c /usr/local/etc/maximum.xml
Немного смущает "code=exited, status=1/FAILURE"
Посмотрел еще журнал:
янв 26 20:17:45 Server systemd[1]: Starting Ices Service Maximum...
янв 26 20:17:45 Server ices[10410]: Into the land of the dreaded daemons we go... (pid: 10415)
янв 26 20:17:45 Server systemd[1]: Started Ices Service Maximum.
янв 26 20:18:36 Server systemd[1]: ices.service: Service hold-off time over, scheduling restart.
янв 26 20:18:36 Server systemd[1]: ices.service: Scheduled restart job, restart counter is at 3.
янв 26 20:18:36 Server systemd[1]: Stopped Ices Service Maximum.
янв 26 20:18:36 Server systemd[1]: Starting Ices Service Maximum...
янв 26 20:18:37 Server ices[11991]: Into the land of the dreaded daemons we go... (pid: 11992)
янв 26 20:18:37 Server systemd[1]: Started Ices Service Maximum.

Все таки попробовал все в один Systemd засунуть:
[Unit]
Description=Ices Service
After=network.target

[Service]
Type=forking
PIDFile=/etc/ices/ices.pid
ExecStart=-/usr/local/bin/ices -c /etc/ices/maximum.xml
ExecStartPost=-/usr/local/bin/ices -c /etc/ices/alternative.xml
ExecStartPost=-/usr/local/bin/ices -c /etc/ices/ultra.xml
ExecStartPost=-/usr/local/bin/ices -c /etc/ices/trance.xml
ExecStartPost=-/usr/local/bin/ices -c /etc/ices/retro.xml
ExecStartPost=-/usr/local/bin/ices -c /etc/ices/russian_rock.xml
Restart=always

[Install]
WantedBy=multi-user.target
В итоге запустилось все одним процессом и работает. Но ошибки "code=exited, status=1/FAILURE" и Failed to parse PID from file /etc/ices/ices.pid: Invalid argument остались. Критичны ли они?
ices.service - Ices Service
   Loaded: loaded (/etc/systemd/system/ices.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-01-27 12:28:59 MSK; 3min 55s ago
  Process: 1746 ExecStartPost=/usr/local/bin/ices -c /etc/ices/russian_rock.xml (code=exited, status=1/FAILURE)
  Process: 1744 ExecStartPost=/usr/local/bin/ices -c /etc/ices/retro.xml (code=exited, status=1/FAILURE)
  Process: 1742 ExecStartPost=/usr/local/bin/ices -c /etc/ices/trance.xml (code=exited, status=1/FAILURE)
  Process: 1739 ExecStartPost=/usr/local/bin/ices -c /etc/ices/ultra.xml (code=exited, status=1/FAILURE)
  Process: 1733 ExecStartPost=/usr/local/bin/ices -c /etc/ices/alternative.xml (code=exited, status=1/FAILURE)
  Process: 1724 ExecStart=/usr/local/bin/ices -c /etc/ices/maximum.xml (code=exited, status=1/FAILURE)
 Main PID: 1743 (ices)
    Tasks: 6 (limit: 4915)
   CGroup: /system.slice/ices.service
           ├─1732 /usr/local/bin/ices -c /etc/ices/maximum.xml
           ├─1738 /usr/local/bin/ices -c /etc/ices/alternative.xml
           ├─1741 /usr/local/bin/ices -c /etc/ices/ultra.xml
           ├─1743 /usr/local/bin/ices -c /etc/ices/trance.xml
           ├─1745 /usr/local/bin/ices -c /etc/ices/retro.xml
           └─1747 /usr/local/bin/ices -c /etc/ices/russian_rock.xml

янв 27 12:28:52 Server systemd[1]: Starting Ices Service...
янв 27 12:28:52 Server ices[1724]: Into the land of the dreaded daemons we go... (pid: 1732)
янв 27 12:28:52 Server ices[1733]: Into the land of the dreaded daemons we go... (pid: 1738)
янв 27 12:28:52 Server ices[1739]: Into the land of the dreaded daemons we go... (pid: 1741)
янв 27 12:28:52 Server ices[1742]: Into the land of the dreaded daemons we go... (pid: 1743)
янв 27 12:28:52 Server ices[1744]: Into the land of the dreaded daemons we go... (pid: 1745)
янв 27 12:28:52 Server ices[1746]: Into the land of the dreaded daemons we go... (pid: 1747)
янв 27 12:28:52 Server systemd[1]: ices.service: Failed to parse PID from file /etc/ices/ices.pid: Invalid argument
янв 27 12:28:59 Server systemd[1]: Started Ices Service.
« Последнее редактирование: 27 Январь 2021, 12:42:30 от blacksmithh »
ASUS Z170 Mini ITX, Intel Core i7-6700 Skylake 3.4Ghz, HD Graphics 530, Deepcool Storm Gabriel, HyperX FURY DDR4 2133Mhz 8Gb, WD Red 2Tb X2, Thermaltake Core V1. Ubuntu 18.04

 

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