Mac OS X: pada perintah tidak berfungsi

42

Saya akan menjadwalkan pekerjaan dengan menggunakan perintah. Di sini saya mencoba perintah berikut:

$ at now + 1 minute
echo 'Test at command'
<EOD>

Saya melihat pekerjaan dijadwalkan dengan menggunakan -l. Namun, saya tidak melihat gema.

Saya kira saya mungkin perlu menambahkan pengguna ke file at.allow. Saya tidak dapat menemukan at.allow di Mac saya (Snow Leopard). Tidak yakin apa yang harus saya lakukan untuk menguji ini atas perintah?

David.Chu.ca
sumber
Saya mencoba membaca info dari man at. Disebutkan bahwa "Jika file _PERM_PATH / at.allow ada, hanya nama pengguna yang disebutkan di dalamnya diizinkan untuk menggunakan di ... Jika ... at.allow tidak ada, _PERM_PATH / at.deny diperiksa, .." Saya Saya tidak yakin apa itu _PERM_PATH.
Dalam kasus Apple OSX Leopard, PERM_PATH untuk "at" adalah / usr / lib / cron.
Richard Hoskins
Untuk Mac OS X Lion, itu/var/at
Stefan Schmidt

Jawaban:

40

Untuk mengaktifkan atrundaemon yang dibutuhkan , seperti yang man atrundikatakan, jalankan:

launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

sebagai root (misalnya via sudo). Setelah Anda selesai melakukannya, /var/at/akan menjadi direktori kunci (meskipun cara paling sederhana adalah dengan menggunakan atroot - misalnya, sekali lagi, oleh sudo! -).

Alex Martelli
sumber
Saya tahu bahwa Anda harus menjadi root untuk mengaktifkan daemon atrun, tetapi Anda tidak perlu menjadi root untuk menjalankan perintah "at". (Kecuali jika perintah-perintah itu membutuhkan root.)
Richard Hoskins
1
apakah aktivasi atau atrun ini bertahan dari reboot?
Eric O Lebigot
Menurut halaman manual ya, tapi saya belum mencobanya.
Stefan Schmidt
1
jika /var/at/at.denykosong Anda tidak perlu root untuk mengantri di pekerjaan, jika tidak, Anda dapat menambahkan nama pengguna Anda /var/at/at.allow.
Stefan Schmidt
Saya harus membaca halaman manual terlebih dahulu ... Terima kasih!
polym
13

Di Snow Leopard Anda perlu:

  1. Edit /System/Library/LaunchDaemons/com.apple.atrun.plist, ubah simpul anak yang dinonaktifkan dari true-> false.

  2. Bongkar arus /System/Library/LaunchDaemons/com.apple.atrun.plistdengan:

    sudo launchctl unload -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    

    Kemudian muat versi yang diedit

    sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    
  3. Uji bahwa itu bekerja dengan:

    echo blah | at now+1
    
  4. Jika gema gagal karena alasan yang berbeda, Anda harus dapat setidaknya melihat antrian dibersihkan:

    atq
    
Somantra
sumber
1
Ini adalah satu-satunya yang bekerja untuk saya di OSX 10.10 Yosemite.
Colin Dean
5

Saya mencoba ini pada OS X Lion dan sepertinya berhasil.

Pertama-tama aktifkan atrundeamon:

launchctl load -w
/System/Library/LaunchDaemons/com.apple.atrun.plist

Kemudian tambahkan [nama pengguna Anda] ke /var/at/at.allow.

Ketika dieksekusi Anda akan menerima output pada /var/mail/[your username]

Saya menemukan bahwa item yang antri dengan batchmengambil beberapa menit untuk benar-benar dieksekusi.

chris838
sumber
2

Lain telah menjawab tentang di dinonaktifkan pada Mac OS X, dan saya tidak tahu tentang itu, tapi ada masalah lain: Di mana Anda berharap Anda gema perintah untuk mencetak pesannya? Pada sistem Unix lain yang saya gunakan tidak mencetak di jendela shell yang sama di mana Anda memberi perintah at . Ingat bahwa ketika di pekerjaan dijalankan, Anda mungkin bahkan tidak login lagi.

Sebaliknya, cobalah menulis sesuatu ke file, dan lihat apakah file itu muncul pada waktu yang tepat.

Thomas Padron-McCarthy
sumber
Halaman manual menyatakan, bahwa output akan dikirimkan kepada Anda.
Stefan Schmidt
@Stefan: Ya, dan itu bekerja dengan baik pada 1980-an, ketika surat ditangani secara lokal di mesin yang sama, tetapi pengalaman saya (dengan jenis Unix selain Mac OS X) adalah bahwa saat ini Anda seharusnya tidak berharap mendapatkan surat apa pun.
Thomas Padron-McCarthy
0

Instalasi OS X (10.4) saya mengatakan di man at:

CATATAN
     at, batch, atq, atrm semuanya dinonaktifkan secara default di Mac OS X.

Sudahkah Anda mengaktifkan atrunsesuai dengan instruksi di sana?

Greg Hewgill
sumber
Saya mencoba mencari di mana atrun di Mac saya. Dari web, opsi lain adalah menambahkan pengguna ke at.allow. Saya tidak dapat menemukan file ini (at.allow) juga.