Ubuntu có hỗ trợ hay không


23

Ubuntu có hỗ trợ @reboottrong crontab không?

Tôi tìm thấy tài liệu cho thấy nó được hỗ trợ, nhưng web chatter khẳng định là không.

Tôi không thể làm cho @rebootphần làm việc. Phần "sau nửa đêm" hoạt động tốt.

Đây là ví dụ thử nghiệm từ /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

kịch bản shell btest.sh

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

quyền

$ 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 .


Bạn đã nghĩ về việc tạo kịch bản btest.sh, tự động khởi động. Askubfox.com/a/9388/2973
wojox

Có một câu trả lời tuyệt vời trên Unix & Linux ' [crontab's @reboot chỉ hoạt động cho root?] [1] [1]: unix.stackexchange.com/q/109804/17362
Édouard Lopez

Tôi có quy tắc crontab @reboot cá nhân của mình hoạt động tốt, trông như thế này:@reboot sh /home/me/run-stuff.sh
taneli

Trong trường hợp không ai có được nó: anh ta đang trộn lẫn crontabs: / etc / crontab là người dùng crontab và yêu cầu người dùng. crontab -e là crontab cá nhân và sử dụng người dùng đang hoạt động tại thời điểm chỉnh sửa nên không yêu cầu tên người dùng. Cả hai đều chấp nhận @reboot.
Rinzwind

Câu trả lời:


21

@reboot được hỗ trợ trong Ubuntu. Lý do tại sao mục nhập của bạn

@reboot /var/kiosk/btest.sh

không hoạt động trong / etc / crontab là vì nó thiếu trường người dùng. Cú pháp đúng sẽ là

@reboot root /var/kiosk/btest.sh

2
Ít nhất trong 14.04 đây không phải là trường hợp, và sai. Một "người đàn ông 5 crontab" cũng không đề cập đến nó. Có lẽ nó phụ thuộc vào phiên bản, nhưng tôi nghi ngờ nó.
vorburger

1
@vorburger nếu bạn có nghĩa @rebootlà không được hỗ trợ, thì đây là một liên kết đến wiki nói rằng nó có. BTW, vào ngày 14.04 của tôi, man 5 crontabkể về@reboot
Fr0zenFyr

4
Trên Ubuntu 14.04 của tôi, có một số người sử dụng someusertự động chạy một lệnh trên (lại) khởi động, tôi phải thêm vào của người dùng đó crontab một mục mà không ghi rõ tên người dùng:@reboot /var/kiosk/btest.sh
Abdull

1
Thêm vào cuộc thảo luận, tôi đang sử dụng Ubuntu 16.4.05. Khi sử dụng crontab của người dùng, lệnh @reboot hoạt động mà không chỉ định người dùng chạy như và không khi người dùng được chỉ định.
Keith Reynold

1

Ubuntu 16.04.5 LTS: Là root:

crontab -e

Thêm các dòng sau:

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 >> sẽ xuất ra thiết bị xuất chuẩn thành /path_to_log.log để bạn có thể khắc phục sự cố này


0

Nó hoạt động vào ngày 18.04 như công việc được xác định trong cron.d.
Tôi đã nhập cái này trong hồ sơ công việc:

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


1
thêm root không làm việc cho tôi Bạn đã sử dụng crontab -e làm root?
MKZ

Tôi đã lưu nó vào tệp start_at numboot trong thư mục /etc/cron.d,
TheR
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.