Mac OS X: komutta çalışmıyor


42

Komutu kullanarak bir iş zamanlayacağım. İşte şu komutu denedim:

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

İşin -l kullanarak zamanlandığını gördüm. Ancak, hiçbir yankı görmedim.

Sanırım at.allow dosyasına kullanıcı eklemem gerekebilir. Mac'imde (Snow Leopard) her zaman bulamıyorum. Bunu komutta test etmek için ne yapmam gerektiğinden emin değil misiniz?


'Daki ​​adamdan bilgi okumaya çalıştım. "_PERM_PATH / at.allow dosyası varsa, yalnızca belirtilen kullanıcı adlarının kullanımında izin veriliyorsa ... 'da ... at.allow mevcut değilse, _PERM_PATH / at.deny işaretliyse," dedi. _PERM_PATH'ın ne olduğundan emin değilim.

Apple OSX Leopard için, "at" için PERM_PATH / usr / lib / cron.
Richard Hoskins

Mac OS X Lion için bu kadar/var/at
Stefan Schmidt

Yanıtlar:


40

İhtiyaç duyulan atruncini etkinleştirmek için , man atrundediği gibi, yürütün:

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

kök olarak (örneğin üzerinden sudo). Bunu yaptıktan sonra /var/at/, anahtar dizin olacaktır (en basit yol atroot olarak kullanmaktır - mesela bir kez daha sudo! -).


Atrun arka planını etkinleştirmek için root olmanız gerektiğini biliyorum, ancak "at" komutlarını çalıştırmak için root olmanıza gerek yok. (Bu komutlar root gerektirmiyorsa.)
Richard Hoskins

1
Bu aktivasyon veya atrun yeniden başlatmalardan kurtulur mu?
Eric O Lebigot

Man sayfasına göre evet, ama denemedim.
Stefan Schmidt

1
eğer /var/at/at.denyboş olduğunu aksi takdirde için kullanıcı adınızı ekleyebilir, işlerinde sıraya kökü olması gerekmez /var/at/at.allow.
Stefan Schmidt

Önce man sayfalarını okumalıyım ... Teşekkürler!
polym

13

Snow Leopard'da yapmanız gerekenler:

  1. Düzenleyin, /System/Library/LaunchDaemons/com.apple.atrun.plistdevre dışı bırakılmış alt düğümü true-> olarak değiştirin false.

  2. Akımı /System/Library/LaunchDaemons/com.apple.atrun.plistşununla kaldır :

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

    Ardından düzenlenen sürümü yükleyin

    sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    
  3. Şununla çalıştığını test edin:

    echo blah | at now+1
    
  4. Yankının farklı bir nedenden ötürü başarısız olması durumunda, en azından kuyruğun temizlendiği sırayı görebilmelisiniz:

    atq
    

1
Bu benim için OSX 10.10 Yosemite'de çalışan tek kişi.
Colin Dean

5

Bunu OS X Lion'da denedim ve işe yaramıştı.

İlk önce atrundeamon'u etkinleştirin :

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

Ardından [kullanıcı adınızı] 'a ekleyin /var/at/at.allow.

Yürütüldüğünde, adresinden çıktı alacaksınız. /var/mail/[your username]

Sıradaki öğelerin batchgerçekten işlemesi birkaç dakika sürebilir.


2

Diğerleri hakkında cevabını verdiniz de Mac OS X üzerinde devre dışı bırakıldıktan ve bunu bilmem, ama başka bir sorun var: Eğer bekliyorsunuz yankı komut mesajını yazdırmak için? Ben gelmez kullanmış olduğu diğer Unix sistemlerinde değil sen verdiğim aynı kabuk penceresinde yazdırmak de komuta. Ne zaman unutmayın de iş çalıştırılır, hatta bir daha giriş olmayabilir.

Bunun yerine bir dosyaya bir şeyler yazmayı deneyin ve bu dosyanın doğru zamanda görünüp görünmediğine bakın.


Man sayfası, çıktının size postalanacağını belirtir.
Stefan Schmidt

@Stefan: Evet ve bu, 1980'lerde, postaların aynı makinede yerel olarak taşınmasıyla iyi çalıştı, ancak benim deneyimim (Mac OS X'ten başka Unix türleriyle) günümüzde herhangi bir posta almayı beklememeniz gerektiği.
Thomas Padron-McCarthy

0

OS X kurulumum (10.4) şöyle diyor man at:

NOT
     at, batch, atq, atrm, Mac OS X'te varsayılan olarak devre dışı bırakılmıştır.

atrunBuradaki talimatlara göre etkinleştirdiniz mi?


Mac'imde nerede çalıştığını bulmaya çalıştım. Web’den, başka bir seçenek de kullanıcıyı at.allow’a eklemektir. Bu dosyayı (at.allow) da bulamadım.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.