Чи підтримує Ubuntu "@reboot" в crontab?


23

Чи підтримує Ubuntu @rebootв crontab?

Я знаходжу документацію, яка дозволяє припустити, що вона підтримується, але веб-чат стверджує, що це не так.

Я не можу змусити роботу @rebootсекції. Розділ «після півночі» працює чудово.

Ось тестовий приклад з мого /etc/crontab:

$ cat /etc/crontab
# /etc/crontab: system-wide crontab

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
##

# in the beginning - 
@reboot /var/kiosk/btest.sh

# after midnight
30 0     * * *   root    /etc/cron.daily/kiosk/kioskReboot.sh

# end of crontab

скрипт оболонки btest.sh

#!/bin/bash
date > /var/kiosk/STARTFLAG.txt
echo we booted >> /var/kiosk/STARTFLAG.txt
date
echo we booted

дозволи

$ ls -l btest.sh
-rwxrwxrwx 1 root root 147 Aug 21 15:19 btest.sh
$ ls -ld
drwxrwxrwx 14 laptopsanytime root 4096 Aug 21 16:30 .


Чи задумалися ви зробити сценарій btest.sh, автозапустити. askubuntu.com/a/9388/2973
wojox

Є відмінна відповідь на Unix & Linux ' [crontab's @reboot працює лише для root?] [1] [1]: unix.stackexchange.com/q/109804/17362
Édouard Lopez

У мене в особистому режимі crontab @reboot працює нормально, виглядає так:@reboot sh /home/me/run-stuff.sh
taneli

У разі, якщо його ніхто не отримав: він змішує crontabs: / etc / crontab - це користувацький crontab і вимагає користувача. crontab -e - це особистий crontab, який використовує користувач, який є активним на момент редагування, тому не вимагає імені користувача. Обидва приймають @reboot.
Rinzwind

Відповіді:


21

@reboot підтримується в Ubuntu. Причина, чому ваш запис

@reboot /var/kiosk/btest.sh

не працює в / etc / crontab тому, що в ньому відсутнє поле користувача. Правильний синтаксис був би

@reboot root /var/kiosk/btest.sh

2
Принаймні, 14.04 це не так, а неправильно. Про це не згадується і "людина 5 кронтаб". Можливо, це залежить від версії, але я сумніваюся в цьому.
vorburger

1
@vorburger, якщо ви хочете сказати, що @rebootвін не підтримується, то ось посилання на wiki, яке говорить про те, що це робиться. BTW, 14 квітня man 5 crontab, розповідає про@reboot
Fr0zenFyr

4
На моєму Ubuntu 14.04, щоб якийсь користувач someuserавтоматично запускав команду про (повторне) завантаження, я повинен був додати до запису користувача crontab запис, не вказуючи ім'я користувача:@reboot /var/kiosk/btest.sh
Абдул

1
Додаючи до обговорення, я використовую ubuntu 16.4.05. Під час використання користувацької crontab команда @reboot працює без вказівки користувача на запуск як, а не тоді, коли користувача вказано.
Кіт Рейнольдс

1

Ubuntu 16.04.5 LTS: як корінь:

crontab -e

Додайте наступні рядки:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
@reboot /path_to_script.sh 2>&1 >> /path_to_log.log

2> & 1 >> виведе stdout в /path_to_log.log, щоб ви могли це усунути


0

Він працює 18.04 як робота, визначена в cron.d.
Я ввів це у файл завдання:

PATH = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
@reboot root /path/to/script.sh


1
додавання root не працювало для мене. Ви використовували crontab -e як корінь?
МКЗ

Я зберегла його, щоб зберегти файл start_at_reboot у каталозі /etc/cron.d,
TheR
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.