Проблемы с использованием "в" с Apache

Я пытаюсь использовать скрипт PHP для создания at рабочих мест, но когда приходит время их выполнять, кажется, ничего не происходит. Я пытался вывести любые ошибки в лог-файлы, но не повезло. Кажется очевидным, что это проблема с разрешениями, потому что, когда я устанавливаю apache для запуска в качестве личного пользователя, все работает нормально. Тем не менее, когда я исполняю wget напрямую из PHP, все работает нормально, поэтому кажется, что apache имеет правильные разрешения на его использование. Проблема, кажется, при использовании at в сочетании с Apache. Поэтому мне нужно найти способ заставить эту работу работать с Apache от своего собственного пользователя.

Вот команда, которую я использую:

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

Есть идеи?

РЕДАКТИРОВАТЬ: Apache может создавать на рабочих местах, просто кажется, что когда они выполняются, ничего не происходит.

2 ответа

Вы проверили, есть ли пользователь apache в файле at.allow? По справочной странице...

       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.

Проблема похожа на проблему cron: ваша работа выполняется в минимальной среде (например, PATH=/bin:/usr/bin и 2 или 3 вещи), и к ее стандартным входам и выходам ничего не привязано.

Сначала убедитесь, что ваша учетная запись Apache является рабочей оболочкой (а не /bin/false), потому что 'at' будет использовать эту оболочку для запуска вашей спецификации заданий.

Затем попробуйте этот более конкретный фрагмент:

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

Другие вопросы по тегам