Дуга Linux запускает скрипт спустя минуту после начальной загрузки

Also, is there any better way of achieving this task?

Да, по крайней мере два пути прибывают по моему мнению:

  1. Можно распределить исходный код. "Unix" имеет давнюю традицию "мобильности" через исходный код. Обратите внимание, что и iperf и pathload являются distribuited по источникам и обоим использованию autoconf "предоставить" мобильность (и это не случайно). Необходимо "только" автоматизировать компиляцию в процедуре установщика приложения.
  2. Если Ваше выполнение приложения только на Linux, Вы могли бы использовать инструмент как Сервис Сборки openSUSE, который может быть used for development of the openSUSE distribution and to offer packages from same source for Fedora, Debian, Ubuntu, SUSE Linux Enterprise and other distributions. Необходимо "только" записать один конфигурационный файл, и OBS скомпилирует и упакует приложение для многих дистрибутивов Unix.

Очевидно, оба решения требуют, чтобы некоторое время и работа были реализованы.

5
20.06.2014, 17:06
3 ответа

Arch использует systemd для управления процессами запуска (демоны и т.п.).

Вы можете написать скрипт, который просто выполнит нужную вам команду, или поспать минутку, а затем выполнить его. Затем добавьте его в процесс загрузки с инструкциями на

wiki

если вы добавите sleep:

#!/bin/sh
sleep 60 # one min
netctl start bridge

Он должен работать отлично. Systemd должен породить другой процесс, когда он выполнит ваш скрипт, так что он не должен заставить вашу систему зависнуть.

3
27.01.2020, 20:31

Для выполнения скрипта через минуту после загрузки можно использовать системные таймеры.

Сначала создайте сервисный файл (/etc/systemd/system/myscript.service):

[Unit]
Description=MyScript

[Service]
Type=simple
ExecStart=/usr/local/bin/myscript

Затем создайте таймер (/etc/systemd/system/myscript.timer):

[Unit]
Description=Runs myscript one minute after boot

[Timer]
# Time to wait after booting before activation
OnBootSec=1min
Unit=myscript.service

[Install]
WantedBy=multi-user.target

Теперь включите и запустите его:

# systemctl enable myscript.timer
# systemctl start myscript.timer
19
27.01.2020, 20:31

Если вам нужно что-то простое, но не блокирующее, добавьте следующее в /etc/rc.local:

( sleep 60 && /path/to/command_or_script [opts] ) &
1
27.01.2020, 20:31

Теги

Похожие вопросы