Problemas usando o “at” com o Apache

1

Estou tentando usar um script PHP para criar at jobs, mas quando chega a hora de executar os jobs, nada parece estar acontecendo. Eu tentei enviar quaisquer erros para os arquivos de log, mas não tive sorte. Parece óbvio que é um problema de permissões, porque quando eu configuro o apache para ser executado como meu usuário pessoal, tudo funciona bem. No entanto, quando eu executo diretamente do PHP, tudo funciona bem, então parece que o apache tem as permissões corretas para usá-lo. O problema parece estar ao usar at em conjunto com o apache. Portanto, preciso encontrar uma maneira de fazer isso funcionar com o apache sendo executado como seu próprio usuário.

Aqui está o comando que estou usando:

echo "wget -qO- http://example.com/" | at now + 1 minute 2>&1

Alguma idéia?

EDIT: O Apache pode criar os jobs at, parece que quando eles executam nada está acontecendo.

    
por Alex Padgett 25.06.2012 / 16:40

2 respostas

1

Você verificou se o usuário do apache está no arquivo at.allow? Per a página man ...

       The  /etc/at.allow and /etc/at.deny files determine which user can sub-
   mit commands for later execution via at(1) or batch(1).

   The format of the files is a list  of  usernames,  one  on  each  line.
   Whitespace is not permitted.

   The superuser may always use at.

   If  the  file  /etc/at.allow exists, only usernames mentioned in it are
   allowed to use at.

   If /etc/at.allow does not exist, /etc/at.deny is checked.
    
por 25.06.2012 / 16:43
1

O problema é similar ao do cron: sua tarefa é executada em um ambiente mínimo (pense em PATH = / bin: / usr / bin e em 2 ou 3 coisas) e sem nada anexado à sua entrada e saída padrão.

Primeiro, certifique-se de que sua conta do Apache seja um shell funcional (e não /bin/false ), porque 'at' usará esse shell para executar seu jobspec.

Em seguida, tente este snippet mais específico:

echo "/usr/bin/wget -qO- http://example.com/ >/tmp/example.com 2>/tmp/example.com.error" | at now + 1 minute

    
por 25.06.2012 / 22:39