Jika Anda ingin tugas dijalankan dalam mode pengguna, Anda dapat melakukan apa yang saya lakukan dan hanya menambahkan sudo -u <user>sebelum tugas dianacrontab
Anda dapat mengatur instance anacron terpisah untuk dijalankan dalam mode pengguna:
Buat .anacronfolder di direktori home Anda dan di dalamnya dua subfolder, etcdan spool:
mkdir -p ~/.anacron/{etc,spool}
Buat file baru ~/.anacron/etc/anacrontabdengan konten yang mirip dengan yang berikut:
# /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 command110 testjob test.sh
Tambahkan baris berikut ke crontab Anda menggunakan crontab -e:
Hanya untuk mengonfirmasi, ini menjalankan skrip yang ditentukan sebagai pengguna, jadi whoamiskrip dalam akan memberikan nama pengguna?
Christoph
hm ya, pada pemeriksaan lebih lanjut saya tidak melihat mengapa tidak ...
Christoph
3
Saya pikir Anda perlu menjalankan anacronsecara berkala; tampaknya berjalan sekali lalu berhenti. Anacron sistem dipanggil sekali setiap jam. Saya kira strategi serupa akan bekerja di sini, yaitu memanggil pengguna anacrondari pengguna crontab.
Sparhawk
1
@Sparhawk setuju, khususnya Ubuntu 15,10 anacron menggunakan keduanya /etc/apm/event.d/anacrondan /etc/init/anacron.confuntuk mengatur ulang.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Anda perlu menjalankan anacron setiap jam dengan pekerjaan cron, misalnya01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside
0
Ini berhasil untuk saya (terima kasih), tetapi saya tidak menggunakan langkah terakhir yang diberikan dalam jawaban:
Kemudian tambahkan baris berikut ke Anda ~/.profile:
Saya menggunakan Ubuntu Studio 12.10 Quantal dan dalam kasus saya alih-alih langkah terakhir itu saya taruh satu liner di sini: "Aplikasi Menu" → "Pengaturan" → "Pengaturan Manajer" lalu di Pengaturan Manajer di bawah "Sesi dan Startup" kemudian Tab "Application Autostart".
Ini bagi kita yang merupakan pengguna GUI, karena ~/.profilehanya bersumber dari bash ketika memulai shell interaktif log-in (bahkan ~/bashrctidak begitu berguna karena itu hanya bersumber ketika bash memulai shell interaktif).
sudo -u <user>
sebelum tugas dianacrontab
Jawaban:
Anda dapat mengatur instance anacron terpisah untuk dijalankan dalam mode pengguna:
Buat
.anacron
folder di direktori home Anda dan di dalamnya dua subfolder,etc
danspool
:Buat file baru
~/.anacron/etc/anacrontab
dengan konten yang mirip dengan yang berikut:Tambahkan baris berikut ke crontab Anda menggunakan
crontab -e
:sumber
whoami
skrip dalam akan memberikan nama pengguna?anacron
secara berkala; tampaknya berjalan sekali lalu berhenti. Anacron sistem dipanggil sekali setiap jam. Saya kira strategi serupa akan bekerja di sini, yaitu memanggil penggunaanacron
dari penggunacrontab
./etc/apm/event.d/anacron
dan/etc/init/anacron.conf
untuk mengatur ulang.01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Ini berhasil untuk saya (terima kasih), tetapi saya tidak menggunakan langkah terakhir yang diberikan dalam jawaban:
Saya menggunakan Ubuntu Studio 12.10 Quantal dan dalam kasus saya alih-alih langkah terakhir itu saya taruh satu liner di sini: "Aplikasi Menu" → "Pengaturan" → "Pengaturan Manajer" lalu di Pengaturan Manajer di bawah "Sesi dan Startup" kemudian Tab "Application Autostart".
Ini bagi kita yang merupakan pengguna GUI, karena
~/.profile
hanya bersumber dari bash ketika memulai shell interaktif log-in (bahkan~/bashrc
tidak begitu berguna karena itu hanya bersumber ketika bash memulai shell interaktif).sumber
.profile
selalu bekerja dengan baik untuk saya (Ubuntu 12.04 di sini).