Просто чтобы побаловаться с созданием скриптов, я сделал один, который (как мне кажется?) должен открывать терминал при запуске:
#!/bin/bash
#start terminal at startup
#/usr/bin/gnome-terminal
Я поместил его в каталог /etc/init.d, а затем запустил это
update-rc.d myscript defaults
но при перезагрузке компьютера ничего не происходит. Почему?
решение1
Короткий ответ:
gnome-terminal
является приложением с графическим интерфейсом. Поэтому его можно запустить толькокак пользователь. В тот момент, когда вы пытаетесь запустить его, ни один пользователь не вошел в систему (еще). Вместо этого поместите (команду для запуска-) скрипт в Startup Applications.
Ты ненуждатьсяскриптсовсемОднако затем вы можете добавить команду непосредственно в Автозапуск приложений.
Это начнется gnome-terminal
после вашего входа в систему.
Кроме того, ваша команда на запуск gnome-terminal
неверна. Должно быть /usr/bin/gnome-terminal
(как сказал @steeldriver, спасибо), или, поскольку она в $PATH
, просто gnome-terminal
.
решение2
Основная ошибка в вашем скрипте в том, что в третьем операторе вы фактически закомментировали команду открытия терминала. Пожалуйста, удалите "#" из третьего утверждения. Между тем вы можете просто использоватьgnome-терминалактивировать его, но он должен быть запущен от имени самого пользователя. Так что это означает, что добавление его в update-rc также не сработает. Если вы больше склонны к терминальным способам, ну, вы можете добавить свой скрипт в crontab и добавить его в файл crontab пользователя с помощьюперезагрузитьconstrain. Это запустит ваш скрипт при запуске. Итак, я резюмирую следующим образом:
Ваш файл называется script.sh:
#!/bin/bash
#start terminal at startup
gnome-terminal
Сделайте скрипт исполняемым пользователем с помощью следующей команды.
chmod u+x /path/to/script.sh
Теперь откройте терминал и отредактируйте crontab пользователя следующим образом:
crontab -e -u username
Добавьте следующее утверждение в конец файла после внесения необходимых изменений.
@reboot /path/to/script.sh
Теперь перезагрузитесь. Вот и все.