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


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

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

Оффлайн blacksmithh

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

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

Оффлайн The Green Side

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

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5451
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
кошернее разобраться с таргетами systemd и оперировать непосредственно systemd-сервисами.
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн blacksmithh

  • Автор темы
  • Новичок
  • *
  • Сообщений: 47
  • Ubuntu 20.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 3.4Ghz, HD Graphics 530, Deepcool Storm Gabriel, HyperX FURY DDR4 3200Mhz 16Gb, WD Red X2 2Tb, SSD X2 240Gb, Fractal Design Node 304, Ubuntu 20.04

Оффлайн EvangelionDeath

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

PS. И для последующих исполнимых файлов у вас полный путь не прописан
Fujitsu UH552: Intel i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Samsung 860 EVO 250GB/Ubuntu Budgie 18.04
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04

Оффлайн blacksmithh

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

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5451
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Я бы через переменные попробовал
Допустим,
/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 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Domitory

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

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5451
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Планировщик anacron не подходит для этой задачи?
задания anacron умеют выполняться сразу после поднятия сети? 
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн blacksmithh

  • Автор темы
  • Новичок
  • *
  • Сообщений: 47
  • Ubuntu 20.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 3.4Ghz, HD Graphics 530, Deepcool Storm Gabriel, HyperX FURY DDR4 3200Mhz 16Gb, WD Red X2 2Tb, SSD X2 240Gb, Fractal Design Node 304, Ubuntu 20.04

 

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