11

I am trying to make the at bash command to run, but it is not working for me. I can add a job to the queue, but it is not run when the time is up. What am I doing wrong?

hpek@melda:~$ cat /usr/lib/cron/at.deny 
hpek@melda:~$ atq
hpek@melda:~$ at now +2 minutes
echo TTTEEEST
job 12 at Sun May  6 02:09:00 2012
hpek@melda:~$ date
Sun May  6 02:10:24 CEST 2012
hpek@melda:~$ atq
12  Sun May  6 02:09:00 2012
hpek@melda:~$ 

UPD2021.08.06 atd was removed in MacOS 11.5.2 (or earlier)

$ sudo find / -name atd -print 2>/dev/null
$ 
4

6 に答える 6

7

正常に動作しています。で実行されているコマンドがat、呼び出し元の端末に出力を書き込まないだけです。

試す:

at now +2 minutes
echo TTTEEEST > new_file_test

2 分後にファイルが表示されます。

于 2012-05-06T00:20:00.180 に答える
5

を見て/var/at/jobs、あなたのアットジョブがそこにリストされているかどうかを確認してください. (OS によって異なるディレクトリである可能性があります)。

デフォルトでatは、ほとんどのシステムで有効になっていません。atジョブを実際に実行するには、atrunコマンドを実行する必要があります。

このコマンドは、システムに応じて、 launchdまたはcronを介して実行されます。

正確なメカニズムはシステムごとに異なるためatatrun、 などのさまざまなマンページをすべて読んatで、 がシステムで本当に有効になっているかどうか、およびジョブで実行する権限があるかどうかを確認する必要があります。通常、システムにはant allowファイルとant denyファイルの両方があるため、両方を確認する必要があります。許可されたファイルにいる必要があり、拒否ファイルにいない必要があります。

さらに、システムで が有効になっていることを確認する必要がatあります (セキュリティ上の理由から、通常は無効になっています)。

于 2012-05-06T05:14:57.723 に答える
1

メールを確認してください:

   An at - or batch - command invoked from a su(1) shell will
   retain the current userid.  The user will be mailed standard
   error and standard output from his commands, if any.  Mail
   will be sent using the command /usr/sbin/sendmail.  If at is
   executed from a su(1) shell, the owner of the login shell
   will receive the mail.
于 2012-05-06T00:20:32.607 に答える
1

私はここでこれを見つけました

まず、次のようなコマンドを使用して at デーモンが実行されていることを確認します。

# ps -ef | grep atd
root 8231 1 0 18:10 ? 00:00:00 /usr/sbin/atd

atd が実行されていない場合は、次のコマンドで開始します。

# /etc/init.d/atd start
于 2017-09-08T08:20:09.263 に答える