У меня есть скрипт, который я хотел бы запустить при запуске моей системы. Я поставил его на "rc.local", но он не работает. Как я могу включить его при запуске?
Можете ли вы запустить скрипт вручную? Если нет, то это проблема с этим скриптом; в противном случае посмотрите больше на rc.local. (Если этот сценарий должен запускаться от имени пользователя root, вам нужно использовать sudo для его запуска вручную.)
Убедитесь, что /etc/rc.local является исполняемым и что вызываемый им сценарий также является исполняемым.
$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 419 2010-08-27 11:26 /etc/rc.local
Убедитесь, что rc.local имеет строку shebang (которая используется по умолчанию):
$ head -n1 /etc/rc.local
#!/bin/sh -e
На более новых версиях Ubuntu systemd
используется и /etc/rc.local
не загружается всегда по умолчанию.
Проверьте, загружается ли сервис Совместимости
systemctl status rc-local.service
Если это содержит активный (вышел), Ваша установка кажется прекрасной, и у Вас могла бы быть другая ошибка в Вашем /etc/rc.local
файл (это могло быть командой, которая перестала работать, например).
В моем случае ни одна из инструкций не была идеальным решением. Если Вы были так же неудачны как я, попробуйте этот подробный
Добавить
#!/bin/sh
как первая строка Вашего кода.
Попытайтесь выполнить свой foo.sh
sudo foo.sh
для проверки нет никаких ошибок вообще.
Предоставьте своему/etc/rc.local сценарию полный путь и название Вашего созданного сценария после команды sh
sh '/path/to/your/script/foo.sh'
Не забудьте помещать вышеупомянутую строку перед последней строкой кода
exit 0
в конце/etc/rc.local сценария.
Проверка первая строка/etc/rc.local, которая будет
#!/bin/sh -e
Сделайте свой/etc/rc.local исполняемый файл в случае, если это не уже исполняемо
sudo chown root /etc/rc.local
sudo chmod 755 /etc/rc.local
Проверьте, что все хорошо работает путем выполнения
sudo /etc/init.d/rc.local start
2 предложения.
Мои ошибки Просто отметьте одно. Спасибо за исправление энзотиба :)