Назад | Перейти на главную страницу

я могу использовать @reboot в файлах cron.d?

Я хочу запустить задание с cron при перезагрузке как конкретный пользователь. Я смог сделать это успешно, используя crontab для записи в / var / spool / cron / crontabs / username с чем-то вроде:

 @reboot ./run.sh >>~/tracefile 2>&1

Однако я хочу использовать /etc/cron.d/filename. Для заданий Cron в этом файле требуется дополнительный столбец, чтобы указать, какой пользователь запускает, поэтому я использую:

 @reboot wwwuser ./run.sh >>~/tracefile 2>&1

Похоже, это не работает. Могу ли я использовать @reboot с именем пользователя в файле cron.d?

Я думаю, что вместо добавления @reboot wwwuser ... к /var/spool/cron/crontabs/usernameты должен бежать crontab -e как пользователь wwwuser и добавить:

@reboot ./run.sh >>~/tracefile 2>&1

На всякий случай обязательно используйте полный путь к скрипту.

Если вы вносите эти изменения программно, вы можете попробовать следующее:

#write out current crontab
crontab -u wwwuser -l > mycron_wwwuser

#echo new cron into a temp cron file
echo "@reboot ./run.sh >>~/tracefile 2>&1" >> mycron_wwwuser

#install new cron file
crontab -u wwwuser mycron_wwwuser

#remove the temp cron file
rm mycron_wwwuser

... или лучше вот этот:

crontab -u wwwuser -l | { cat; echo "@reboot ./run.sh >>~/tracefile 2>&1"; } | crontab -u wwwuser -