Đây có thể là một chút của một chủ đề khó hiểu bởi vì có các triển khai khác nhau của cron. Ngoài ra, có một số lỗi đã phá vỡ tính năng này và cũng có một số trường hợp sử dụng mà đơn giản là nó không hoạt động, đặc biệt nếu bạn thực hiện tắt máy / khởi động so với khởi động lại.
Lỗi
bảng dữ liệu số 1
Một lỗi như vậy trong Debian được đề cập ở đây, có tiêu đề: cron: @reboot jobs không được chạy . Điều này dường như cũng đã được đưa vào Ubuntu, điều mà tôi không thể xác nhận trực tiếp.
bảng dữ liệu số 2
Bằng chứng về lỗi trong Ubuntu dường như sẽ được xác nhận ở đây trong phần Hỏi & Đáp SO này có tiêu đề: @reboot cronjob không thực thi .
đoạn trích
nhận xét # 1: .... 3) phiên bản crond của bạn có thể không hỗ trợ @reboot bạn có đang sử dụng crond của vix không? ... Hiển thị kết quả của người dùng crontab -l -u
bình luận # 2: ... Có thể là một ý tưởng tốt để thiết lập nó dưới dạng một tập lệnh init thay vì dựa vào một phiên bản cụ thể của cron's @reboot.
nhận xét # 3: ... @MarkRoberts đã xóa phần khởi động lại và sửa đổi 1 * * * *, thành * / 1 * * * *, vấn đề đã được giải quyết! Tôi gửi đại diện Mark ở đâu? Cảm ơn bạn!
Câu trả lời được chấp nhận trong đó Q & A cũng có nhận xét này:
Dường như với tôi, Lubfox không hỗ trợ cú pháp @Reboot Cron.
Bằng chứng bổ sung
bảng dữ liệu số 3
Như một bằng chứng bổ sung có chủ đề này cho thấy ai đó đang cố gắng làm điều tương tự và cảm thấy thất vọng vì nó không hoạt động. Nó có tiêu đề: Chủ đề: Cron - công việc @reboot không hoạt động .
đoạn trích
Re: Cron - @reboot công việc không hoạt động
Trích dẫn được đăng bởi ceallred Xem bài viết Điều này đang giết chết tôi ... Đã thử tập lệnh bao bọc. Chạy thủ công tạo tệp nhật ký ... khởi động lại và công việc không chạy hoặc tạo tệp nhật ký.
Syslog cho thấy CRON đã chạy công việc ... nhưng một lần nữa, không có đầu ra và quá trình không chạy. 15 tháng 7 20:07:45 RavenWing cron [1026]: (CRON) INFO (Chạy các công việc @reboot) 15 tháng 7 20:07:45 RavenWing CRON [1053]: (ceallred) sh> /home/ceallred/Scripts/SpiderOak.log 2> & 1 &)
Có vẻ như cron không thích lệnh @reboot .... Còn ý tưởng nào khác không?
Được rồi ... Giải quyết một phần. Tôi sẽ đánh dấu vấn đề này là đã giải quyết và bắt đầu một chủ đề mới với vấn đề mới .....
Tôi nghĩ rằng câu trả lời là thư mục nhà được mã hóa của tôi không được gắn kết khi CRON đang cố chạy tập lệnh (được lưu trong / home / tên người dùng / tập lệnh). Đã chuyển đến / usr / script và công việc chạy như mong đợi.
Vì vậy, bây giờ nó dường như là một vấn đề spideroak. Quá trình bắt đầu, nhưng đến khi quá trình khởi động kết thúc, nó đã biến mất. Tôi đoán một sự cố vì một số lý do .... Chủ đề mới để hỏi về điều đó.
Cảm ơn vì sự giúp đỡ!
Một khi người dùng ở trên phát hiện ra vấn đề của mình, anh ta đã có thể @reboot
thoát khỏi mục nhập crontab của người dùng.
Tôi không hoàn toàn chắc chắn phiên bản cron nào được sử dụng trên Ubuntu, nhưng điều này dường như cho thấy rằng người dùng cũng có thể sử dụng @reboot
hoặc lỗi đã được sửa tại một số điểm trong các phiên bản tiếp theo của cron.
bảng dữ liệu số 4
Tôi đã thử nghiệm trên CentOS 6 như sau và nó đã hoạt động.
Thí dụ
$ crontab -l
@reboot echo "hi" > /home/sam/reboot.txt 2>&1
Sau đó tôi khởi động lại hệ thống.
$ sudo reboot
Sau khi khởi động lại.
$ cat reboot.txt
hi
Đi đường
- Tính năng này dường như được hỗ trợ cho cả mục nhập crontab của hệ thống và người dùng.
- Bạn phải đảm bảo rằng nó được hỗ trợ / hoạt động trong bản phân phối cụ thể và / hoặc phiên bản của gói cron.
Để biết thêm về cách thức hoạt động của cơ chế thực tế, @reboot
tôi đã xem qua bài đăng trên blog này để thảo luận về các bộ phận. Nó có tiêu đề: @reboot - giải thích ma thuật cron đơn giản .
Gỡ lỗi crond
Bạn có thể tăng mức độ chi tiết crond
bằng cách thêm phần sau vào tệp cấu hình này trên các bản phân phối dựa trên RHEL / CentOS / Fedora.
$ more crond
# Settings for the CRON daemon.
# CRONDARGS= : any extra command-line startup arguments for crond
CRONDARGS="-L 2"
Các mức hợp lệ là 0, 1 hoặc 2. Để hoàn nguyên tệp này về mức ghi nhật ký mặc định, chỉ cần xóa "-L 2"
khi bạn hoàn tất việc gỡ lỗi tình huống.