우분투는 crontab에서“@reboot”를 지원합니까?


23

@rebootcrontab 에서 우분투를 지원합니까 ?

지원되는 문서를 찾았지만 웹 채터는 지원하지 않는다고 주장합니다.

@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

유닉스와 리눅스에 대한 좋은 대답이있다. [crontab의 @reboot는 루트에서만 작동합니까?] [1] [1] : unix.stackexchange.com/q/109804/17362
Édouard Lopez

내 개인 crontab @ 재부팅 규칙에 다음과 같이 작동합니다.@reboot sh /home/me/run-stuff.sh
taneli

아무도 얻지 못한 경우 : 그는 crontab을 혼합하고 있습니다 : / etc / crontab은 사용자 crontab이며 사용자가 필요합니다. crontab -e는 개인 crontab이며 편집시 활성화 된 사용자를 사용하므로 사용자 이름이 필요하지 않습니다. 둘 다 @ 재부팅을 수락합니다.
Rinzwind

답변:


21

@reboot는 우분투에서 지원됩니다. 입국 이유

@reboot /var/kiosk/btest.sh

/ etc / crontab에서 작동하지 않는 이유는 사용자 필드가 없기 때문입니다. 올바른 구문은

@reboot root /var/kiosk/btest.sh

2
적어도 14.04에서 이것은 사실이 아니며 잘못되었습니다. "man 5 crontab"도 언급하지 않습니다. 아마도 버전에 따라 다르지만 의심합니다.
vorburger

1
@vorburger @reboot가 지원되지 않는다면 여기 에 위키 링크 가 있습니다. BTW는 14.04 man 5 crontab@reboot
Fr0zenFyr

4
Ubuntu 14.04에서 일부 사용자가 someuser자동으로 (재) 부트에서 명령을 실행하게 하려면 사용자 이름 지정 하지 않고 해당 사용자의 crontab에 항목 을 추가해야 했습니다 .@reboot /var/kiosk/btest.sh
Abdull

1
토론에 추가하여 우분투 16.4.05를 사용하고 있습니다. 사용자 crontab을 사용할 때 @reboot 명령은 실행할 사용자를 지정하지 않고 작동하며 사용자를 지정할 때는 작동하지 않습니다.
Keith Reynolds

1

우분투 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
@ 재부트 루트 /path/to/script.sh


1
루트를 추가해도 효과가 없었습니다. crontab -e를 루트로 사용 했습니까?
MKZ

/etc/cron.d 디렉토리에있는 start_at_reboot 파일에 저장했습니다.
TheR
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.