У меня есть сценарий в папке:
/path/to/my/script.sh
Мне нужно, чтобы этот скрипт запускался каждый раз, когда система запускается (даже если никто не входит в систему). Что мне нужно сделать, чтобы это произошло?
Вам не нужен root или даже login.
Вы можете отредактировать свой crontab (crontab -e) и создать запись вроде этого:
@reboot /path/to/script.sh
вы можете запустить его как обычного пользователя. @reboot просто означает, что он запускается при запуске компьютера (не обязательно, когда он перезагружен).
из терминала
создать файл newshell.sh.desktop в папке ~/.config/autostart:gedit ~/.config/autostart/newshell.sh.desktop
изменить Exec, Name и Comment значение и добавить в файл: первая строка [Desktop Entry]
Type=Application
Exec=/full/link/to/your/newshell.sh
Name=newshell
Comment=whatever you want
сохранить или
вы можете сделать это из GUI:
создать файл newshell.sh.desktop в папке ~/.config/autostart:gedit ~/.config/autostart/newshell.sh.desktop
добавьте те же Exec, Name и Comment. В вашем доме у вас есть файл с именем .bashrc. Этот файл выполняется при открытии вашей сессии.
Просто поместите что-то вроде этого в конец файла:
sh /path/to/your/script.sh
ИЗМЕНИТЬ: извините, я не ответил на ваш вопрос, потому что мое решение выполняется, когда пользователь входит в систему ...
Чтобы выполнить что-то перед входом в систему, вы можете попробовать rcconf или rc-файл: http://www.debianadmin.com/manage- линукс-INIT или-стартап-scripts.html
Просто отредактируйте rc.local nano /etc/init.d/rc.local следующим образом:
/path/to/my/script.sh || exit 1
exit 0