Запуск скрипта через crontab при перезагрузке [dубликат]

У этого вопроса уже есть ответ здесь: Как запустить задание cron с помощью команды sudo 3 ответа Как запустить скрипт во время загрузки с правами root 6

Я использую Ubuntu Server 16.04. Каждый раз, когда я вхожу в систему, мне нужно вручную запустить мой скрипт: /home/user/ini.sh. Этот скрипт вызывает другие скрипты, которым требуются разрешения sudo, поэтому я получаю приглашение, вставляю свой пароль и делаю. Теперь я хочу настроить способ автоматического запуска сценария при запуске системы.

Я использовал crontab -e и добавил строку

@reboot /home/user/ini.sh

Это, похоже, не работает , Я пробовал разные варианты, как предлагалось другими пользователями здесь, здесь, здесь или здесь.

@reboot user /home/user/ini.sh @reboot root /home/user/ini.sh @reboot sh /home/user/ini.sh */1 * * * * /home/user/ini.sh ....

добавление SHELL=/bin/bash ... Но я не могу заставить его работать. Я также попробовал

@reboot echo "yes" > /home/user/yes.txt

И файл был создан - пустым, хотя без содержимого внутри (это демонстрирует, что что-то работает, но я что-то делаю где-то).

Где это моя ошибка?

EDIT

У меня также EDIT попытался sudo crontab -e и использовать

@reboot root /home/user/ini.sh
0
задан 14 February 2018 в 20:58

2 ответа

Существует большая разница между перезагрузкой и логином, и ваша система рассматривает их как совершенно по-другому.

Задания REBOOT запускаются пользователем root (а не вашим пользователем) и должны быть безголовыми (без отображения). Лучший способ выполнять задания загрузки в 16.04 и новее - создать службу и включить эту службу в соответствующую системную цель во время процесса загрузки. Задания LOGIN запускаются вашим пользователем (не root) после ввода пароля. Лучший способ делать задания для входа - разместить их в своем каталоге ~/.config/autostart/.

Но у вас есть вторая проблема. Кажется, вам нужна работа на уровне пользователя для использования служб на уровне корневого уровня. Есть много и много способов сделать это.

Задания REBOOT запускаются пользователем root (а не вашим пользователем) и должны быть безголовыми (без отображения).

Задания REBOOT запускаются пользователем root (не для того, чтобы выполнять задания загрузки в 16.04 и новее), чтобы создать службу и включить эту службу в соответствующую системную цель. ваш пользователь) и должен быть безголовым (без отображения).

Задачи LOGIN выполняются вашим пользователем (не root). В этом случае, ) после ввода пароля. Лучший способ делать задания для входа - разместить их в каталоге ~/.config/autostart/.
3
ответ дан 17 July 2018 в 20:50

Существует большая разница между перезагрузкой и логином, и ваша система рассматривает их как совершенно по-другому.

Задания REBOOT запускаются пользователем root (а не вашим пользователем) и должны быть безголовыми (без отображения). Лучший способ выполнять задания загрузки в 16.04 и новее - создать службу и включить эту службу в соответствующую системную цель во время процесса загрузки. Задания LOGIN запускаются вашим пользователем (не root) после ввода пароля. Лучший способ делать задания для входа - разместить их в своем каталоге ~/.config/autostart/.

Но у вас есть вторая проблема. Кажется, вам нужна работа на уровне пользователя для использования служб на уровне корневого уровня. Есть много и много способов сделать это.

Задания REBOOT запускаются пользователем root (а не вашим пользователем) и должны быть безголовыми (без отображения).

Задания REBOOT запускаются пользователем root (не для того, чтобы выполнять задания загрузки в 16.04 и новее), чтобы создать службу и включить эту службу в соответствующую системную цель. ваш пользователь) и должен быть безголовым (без отображения).

Задачи LOGIN выполняются вашим пользователем (не root). В этом случае, ) после ввода пароля. Лучший способ делать задания для входа - разместить их в каталоге ~/.config/autostart/.
3
ответ дан 23 July 2018 в 21:30
  • 1
    Это было проницательно. Я нашел еще один вариант для заданий LOGIN, который использует .profile (пользователю необходимо войти в систему). Я сделаю некоторое тестирование и опубликую результат – user1156544 14 February 2018 в 20:49

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

Похожие вопросы: