Tôi muốn thiết lập một tác vụ theo lịch trình thông qua anacron
nhưng tôi muốn làm như vậy trong chế độ người dùng. Làm thế nào tôi có thể đạt được điều này?
Tôi muốn thiết lập một tác vụ theo lịch trình thông qua anacron
nhưng tôi muốn làm như vậy trong chế độ người dùng. Làm thế nào tôi có thể đạt được điều này?
Câu trả lời:
Bạn có thể thiết lập một phiên bản anacron riêng để chạy trong chế độ người dùng:
Tạo một .anacron
thư mục trong thư mục chính của bạn và trong đó có hai thư mục con etc
và spool
:
mkdir -p ~/.anacron/{etc,spool}
Tạo một tệp mới ~/.anacron/etc/anacrontab
với nội dung tương tự như sau:
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# period delay job-identifier command
1 10 testjob test.sh
Thêm dòng sau vào crontab của bạn bằng cách sử dụng crontab -e
:
@hourly /usr/sbin/anacron -s -t $HOME/.anacron/etc/anacrontab -S $HOME/.anacron/spool
whoami
trong tập lệnh sẽ cung cấp tên người dùng?
anacron
định kỳ; Nó dường như chạy một lần rồi bỏ. Anacron của hệ thống được gọi mỗi giờ một lần. Tôi cho rằng một chiến lược tương tự sẽ hoạt động ở đây, tức là gọi người dùng anacron
từ người dùng crontab
.
/etc/apm/event.d/anacron
và /etc/init/anacron.conf
để chăm sóc khởi động lại.
01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Điều này làm việc cho tôi (cảm ơn), nhưng tôi đã không sử dụng bước cuối cùng được đưa ra trong câu trả lời:
Sau đó thêm dòng sau vào
~/.profile
:
Tôi đang sử dụng Ubuntu Studio 12.10 Định lượng và trong trường hợp của tôi thay vì bước cuối cùng đó, tôi đặt một lớp lót đó vào đây: Menu Ứng dụng Menu → → Cài đặt Cài đặt → → Ứng dụng Autostart tab tab.
Điều này dành cho những người trong chúng ta là người dùng GUI, vì ~/.profile
chỉ có nguồn gốc từ bash khi nó bắt đầu một vỏ tương tác đăng nhập (thậm chí ~/bashrc
không hữu ích vì nó chỉ có nguồn gốc khi bash đang bắt đầu một vỏ tương tác).
.profile
luôn hoạt động tốt với tôi (Ubuntu 12.04 ở đây).
sudo -u <user>
trước khi thực hiện nhiệm vụanacrontab