Я использую 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
Существует большая разница между перезагрузкой и логином, и ваша система рассматривает их как совершенно по-другому.
Задания REBOOT запускаются пользователем root (а не вашим пользователем) и должны быть безголовыми (без отображения). Лучший способ выполнять задания загрузки в 16.04 и новее - создать службу и включить эту службу в соответствующую системную цель во время процесса загрузки. Задания LOGIN запускаются вашим пользователем (не root) после ввода пароля. Лучший способ делать задания для входа - разместить их в своем каталоге ~/.config/autostart/.Но у вас есть вторая проблема. Кажется, вам нужна работа на уровне пользователя для использования служб на уровне корневого уровня. Есть много и много способов сделать это.
Задания REBOOT запускаются пользователем root (а не вашим пользователем) и должны быть безголовыми (без отображения).Задания REBOOT запускаются пользователем root (не для того, чтобы выполнять задания загрузки в 16.04 и новее), чтобы создать службу и включить эту службу в соответствующую системную цель. ваш пользователь) и должен быть безголовым (без отображения).
Задачи LOGIN выполняются вашим пользователем (не root). В этом случае, ) после ввода пароля. Лучший способ делать задания для входа - разместить их в каталоге ~/.config/autostart/.Существует большая разница между перезагрузкой и логином, и ваша система рассматривает их как совершенно по-другому.
Задания REBOOT запускаются пользователем root (а не вашим пользователем) и должны быть безголовыми (без отображения). Лучший способ выполнять задания загрузки в 16.04 и новее - создать службу и включить эту службу в соответствующую системную цель во время процесса загрузки. Задания LOGIN запускаются вашим пользователем (не root) после ввода пароля. Лучший способ делать задания для входа - разместить их в своем каталоге ~/.config/autostart/.Но у вас есть вторая проблема. Кажется, вам нужна работа на уровне пользователя для использования служб на уровне корневого уровня. Есть много и много способов сделать это.
Задания REBOOT запускаются пользователем root (а не вашим пользователем) и должны быть безголовыми (без отображения).Задания REBOOT запускаются пользователем root (не для того, чтобы выполнять задания загрузки в 16.04 и новее), чтобы создать службу и включить эту службу в соответствующую системную цель. ваш пользователь) и должен быть безголовым (без отображения).
Задачи LOGIN выполняются вашим пользователем (не root). В этом случае, ) после ввода пароля. Лучший способ делать задания для входа - разместить их в каталоге ~/.config/autostart/.