Запуск приложения / скрипта с задержкой, после перезагрузки

Thank you for reading this post, don't forget to subscribe!

Пери­о­ди­че­ски воз­ни­ка­ют ситу­а­ции, когда необ­хо­ди­мо запу­стить скрипт или при­ло­же­ние с задерж­кой спу­стя неко­то­рое вре­мя после вклю­че­ния / пере­за­груз­ки систе­мы. Есть несколь­ко спо­со­бов, мож­но исполь­зо­вать crontab или systemd.

Отложенный запуск - CRONTAB

Здесь доста­точ­но открыть на редак­ти­ро­ва­ние crontab:

Ука­зать путь к скрип­ту / при­ло­же­нию исполь­зо­вав пара­мет­ры @reboot + sleep:

Из листин­га ясно, что по тай­мау­ту в 10 секунд про­изой­дет запуск скрип­та check-service.sh

Отложенный запуск - SYSTEMD

Здесь мож­но исполь­зо­вать systemd тай­мер + systemd юнит, для нача­ла созда­дим тесто­вый скрипт, кото­рый будет скла­ды­вать в лог дату и вре­мя в момент сво­е­го запуска:

Тесто­вый скрипт мож­но раз­ме­стить куда угод­но, напри­мер в /tmp и раз­ре­шить его выполнение:

Создать юнит для запус­ка скрипта:

С содер­жи­мым:

Теперь насту­пи­ло вре­мя тай­ме­ра, смот­рим какие есть в принципе:

Созда­ем свой:

С содер­жи­мым:

Где тймаут запус­ка 3 мину­ты, после чего необ­хо­ди­мо обно­вить кон­фи­гу­ра­цию systemd:

Далее с целью экс­пе­ри­мен­та выклю­ча­ем тесто­вый сервис:

Вклю­ча­ем таймер:

Проверка

Пере­за­гру­жа­ем систе­му, смот­рим состо­я­ние таймера:

Вид­но, что до запус­ка оста­лось 2 мину­ты 27 секунд, про­ве­ря­ем спи­сок таймеров:

Далее, по фак­ту отве­ден­но­го вре­ме­ни про­ве­ря­ем лог: