Tôi có bộ cronjob này:
* * * * * /usr/bin/systemctl suspend
Và nó không hoạt động. Nhưng tôi có thể chạy nó trong một cái vỏ và nó hoạt động. Tôi không hiểu những gì có thể không hoạt động.
EDIT
Chuyển hướng đầu ra lỗi để /tmp/errorcung cấp cho điều này:
Failed to issue method call: Access denied
Failed to issue method call: Access denied
Câu hỏi của tôi là: Các cronjobs có chạy như một người dùng đặc biệt không ( cronví dụ), điều này sẽ giải thích rằng người dùng của tôi có thể chạy lệnh, nhưng không phải cronchính nó?
Giải thích thêm:
Đây là một ví dụ tối thiểu để hiển thị một vấn đề tôi gặp phải trong một tập lệnh (có ý nghĩa hơn so với lệnh đơn được cung cấp ở đây)
systemctllà một phần củasystemd. Tôi nghĩ khởi động lại, tắt máy, tạm dừng đang làm việc với người dùng không rootsystemd. Dù sao, nó đang làm việc trên hệ thống của tôi.Cuối cùng, tôi sử dụng Arch Linux và
/bin,/usr/sbin,/sbintất cả đều liên kết tượng trưng đến/usr/bin.
systemctlđang ở /usr/binvà nó chấp nhận suspendnhư thế? Bạn đang sử dụng cái gì?
systemctl suspendkhông hoạt động trên các bản phân phối Debian hoặc RedHat) và vì vậy giải thích rằng bạn không thực sự muốn làm những gì bạn đang hiển thị :). Ngoài ra, hãy thử thêm 2> /tmp/errorhoặc một cái gì đó để nắm bắt bất kỳ lỗi nào bạn có thể nhận được. Cuối cùng, cho chúng tôi biết người dùng nào đang chạy crontab này.