Как запустить скрипт при запуске? [Дубликат]

У этого вопроса уже есть ответ здесь: как запускать скрипты при запуске? 9 ответов

У меня есть сценарий в папке:

/path/to/my/script.sh

Мне нужно, чтобы этот скрипт запускался каждый раз, когда система запускается (даже если никто не входит в систему). Что мне нужно сделать, чтобы это произошло?

1
задан 24 December 2015 в 05:15

4 ответа

Вам не нужен root или даже login.

Вы можете отредактировать свой crontab (crontab -e) и создать запись вроде этого:

@reboot /path/to/script.sh

вы можете запустить его как обычного пользователя. @reboot просто означает, что он запускается при запуске компьютера (не обязательно, когда он перезагружен).

38
ответ дан 25 May 2018 в 03:26
  • 1
    В порядке выполнения заданий cron конкретному пользователю не нужно входить в систему? Вопрос гласит, даже если пользователь не входит в систему. В этом случае будет ли этот метод работать? – David Jones 10 January 2017 в 17:08
  • 2
    @Qwertylicious, пользователю не нужно входить в систему для выполнения заданий cron. Этот метод работает независимо от того, вошел ли он в систему, поскольку cron запускает системный процесс, а при выполнении заданий пользователя cron он выполняет задание в качестве этого пользователя. Пока компьютер включен, cron будет запускаться независимо от того, кто вошел в систему. – Dan Jones 10 January 2017 в 20:38

из терминала

создать файл 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.
10
ответ дан 25 May 2018 в 03:26
  • 1
    Я знаю, что это немного поздно, но спасибо за помощь. – user 7 October 2016 в 03:19
  • 2
    Я знаю, что это немного поздно, но спасибо за помощь. – user 7 October 2016 в 03:19
  • 3
    Я знаю, что это немного поздно, но спасибо за помощь. – user 7 October 2016 в 03:19
  • 4
    Я знаю, что это немного поздно, но спасибо за помощь. – user 7 October 2016 в 03:19
  • 5
    Я знаю, что это немного поздно, но спасибо за помощь. – user 7 October 2016 в 03:19
  • 6
    Я знаю, что это немного поздно, но спасибо за помощь. – user 7 October 2016 в 03:19
  • 7
    Обратите внимание, что OP явно хотел, чтобы он запускался при запуске системы, прежде чем кто-либо войдет в систему. Автозапущенные скрипты запускаются только при входе в систему. – Gunnar Hjalmarsson 7 February 2017 в 07:08

В вашем доме у вас есть файл с именем .bashrc. Этот файл выполняется при открытии вашей сессии.

Просто поместите что-то вроде этого в конец файла:

sh /path/to/your/script.sh

ИЗМЕНИТЬ: извините, я не ответил на ваш вопрос, потому что мое решение выполняется, когда пользователь входит в систему ...

Чтобы выполнить что-то перед входом в систему, вы можете попробовать rcconf или rc-файл: http://www.debianadmin.com/manage- линукс-INIT или-стартап-scripts.html

2
ответ дан 25 May 2018 в 03:26
  • 1
    .bashrc вызывается, когда открывается новый терминал. – termnml 12 December 2012 в 20:50
  • 2
    Спасибо за информацию. На сайте, который вы упомянули, есть хорошая информация! – Rusty 12 December 2012 в 21:21

Просто отредактируйте rc.local nano /etc/init.d/rc.local следующим образом:

/path/to/my/script.sh || exit 1 
exit 0
-1
ответ дан 25 May 2018 в 03:26

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

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