Почему мой скрипт запуска для открытия терминала не работает?

Почему мой скрипт запуска для открытия терминала не работает?

Просто чтобы побаловаться с созданием скриптов, я сделал один, который (как мне кажется?) должен открывать терминал при запуске:

#!/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

Теперь перезагрузитесь. Вот и все.

Связанный контент