LINUX.ORG.RU

Crontab и полный/неполный путь до приложения

 , ,


0

2

Столкнулся с такой штукой И раньше сталкивался, но сейчас пришлось добавить много задач в crontab и это начало бесить:

  • Некоторые приложения (вероятно все те, что лежат в /bin/) запускаются без указания полного пути. Например, tar.
  • Другие приложения (которые находятся в /usr/bin/, например, тот же screen) запускаются только в том случае, если указан полный путь до них

Как я понял, дело в переменной PATH, которую использует crontab. Но я всегда считал, что он пользуется той переменной, которая указана у $USER.

Все так и должно быть или можно сделать, чтобы все приложения системы были видны crontab'ом без указания полного пути? Это историческая (или функциональная) особенность crontab?

Deleted

Последнее исправление: ifelse (всего исправлений: 1)

man 5 crontab

       SHELL=/bin/sh
       PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

       # m h dom mon dow usercommand
       17 * * * *  root  cd / && run-parts --report /etc/cron.hourly
       25 6 * * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
       47 6 * * 7  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
       52 6 1 * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
       #

futurama ★★★★★
()

я всегда считал, что он пользуется той переменной, которая указана у $USER.

man 5 crontab

Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd line of the crontab's owner. PATH is set to «/usr/bin:/bin». HOME, SHELL, and PATH may be overridden by settings in the crontab; LOGNAME is the user that the job is running from, and may not be changed.

futurama ★★★★★
()

Сделай в кроне задание echo $PATH и все поймешь.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.