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


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

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

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

Оффлайн blacksmithh

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

Возможно ли написать задание что бы потоки запускались к примеру через 3 минуты после загрузки системы?
Пробовал вот такое задание: @reboot sudo ices -c /usr/local/etc/music.conf
ASUS H610I Mini ITX, Intel Core i5-13500, UHD 770, Deepcool GAMMAXX 400EX, HyperX FURY DDR4 3200Mhz 16Gb, WD Red X2 2Tb, SSD X2 240Gb, Fractal Design Node 304, Ubuntu 20.06

Оффлайн The Green Side

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

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6752
  • 20% Cooler
    • Просмотр профиля
кошернее разобраться с таргетами systemd и оперировать непосредственно systemd-сервисами.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн blacksmithh

  • Автор темы
  • Любитель
  • *
  • Сообщений: 67
  • 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 H610I Mini ITX, Intel Core i5-13500, UHD 770, Deepcool GAMMAXX 400EX, HyperX FURY DDR4 3200Mhz 16Gb, WD Red X2 2Tb, SSD X2 240Gb, Fractal Design Node 304, Ubuntu 20.06

Оффлайн EvangelionDeath

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

PS. И для последующих исполнимых файлов у вас полный путь не прописан
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн blacksmithh

  • Автор темы
  • Любитель
  • *
  • Сообщений: 67
  • Ubuntu 20.04
    • Просмотр профиля
1. По времени позже самого icecast, т.к. он не сразу стартует.
2. т.е. шесть созданных файлов для каждого потока это нормальная практика?
p.s. не совсем понял, подскажите пожалуйста.
ASUS H610I Mini ITX, Intel Core i5-13500, UHD 770, Deepcool GAMMAXX 400EX, HyperX FURY DDR4 3200Mhz 16Gb, WD Red X2 2Tb, SSD X2 240Gb, Fractal Design Node 304, Ubuntu 20.06

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6752
  • 20% Cooler
    • Просмотр профиля
Я бы через переменные попробовал
Допустим,
/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
#... и т.д.

За правильность не ручаюсь, что вспомнил, то вспомнил, у себя проверить не смогу - пробуйте сами.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Domitory

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

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6752
  • 20% Cooler
    • Просмотр профиля
Планировщик anacron не подходит для этой задачи?
задания anacron умеют выполняться сразу после поднятия сети? 
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн blacksmithh

  • Автор темы
  • Любитель
  • *
  • Сообщений: 67
  • 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 H610I Mini ITX, Intel Core i5-13500, UHD 770, Deepcool GAMMAXX 400EX, HyperX FURY DDR4 3200Mhz 16Gb, WD Red X2 2Tb, SSD X2 240Gb, Fractal Design Node 304, Ubuntu 20.06

 

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