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/error
cung 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 ( cron
ví 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 cron
chí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)
systemctl
là 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
,/sbin
tất cả đều liên kết tượng trưng đến/usr/bin
.
systemctl
đang ở /usr/bin
và nó chấp nhận suspend
như thế? Bạn đang sử dụng cái gì?
systemctl suspend
khô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/error
hoặ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.