Я пытаюсь получить сценарий для запуска при старте с помощью Startup Applications. Я хочу, чтобы он выполнялся в терминальном окне (и оставался открытым). Это контрольный скрипт.
Мне удалось заставить окно терминала открыться при запуске без команды "gnome-terminal", но я не могу получить синтаксис --command правильно, и я не вижу ошибок, если окно не открывается, когда оно неправильно.
gnome-terminal --command /path/to/script.sh
Кто-нибудь может исправить то, что я делаю неправильно?
Спасибо
Ваш синтаксис как таковой правильный. Разработчики Gnome указывают, что они удалят его, и теперь выступают за использование -
для завершения всех параметров, чтобы все, что было после этого, оценивалось как команда. Этот синтаксис будет gnome-terminal - /path/to/script.sh
. Однако они забыли, что этот новый синтаксис не позволяет вам открывать сразу несколько вкладок или окон, например для автоматического подключения к разным ssh
серверам при запуске.
Почему вы не видите терминал, это означает, что ваш скрипт высвобождает приглашение терминала сразу после его запуска. Это могло произойти, если скрипт запускает процессы в фоновом режиме. Если вы хотите, чтобы терминал оставался открытым, добавьте инструкцию «bash» или что-нибудь вроде read -n 1 -s -r -p «Нажмите любую клавишу, чтобы продолжить»
. Вы можете добавить это в сценарий или в качестве второй команды, как в gnome-terminal - /path/to/script.sh; bash
.
Другой способ добиться этого из стартовой программы запуска не отображается в пользовательском интерфейсе: вам нужно отредактировать программу запуска .desktop вручную. Он находится в папке .config / autostart
.С помощью этого метода вы только вводите путь к исполняемому сценарию в качестве команды, но указываете, что он должен запускаться в терминале:
...
Exec=/path/to/script.sh
...
Terminal=true
...
При обоих подходах этот терминал закроется после завершения сценария.
Просто запустите gnome-terminal - /path/to/script.sh
внутри другого gnome-terminal, чтобы узнать, что происходит. Параметр - команда
устарел. Также убедитесь, что ваш файл сценария имеет правильные разрешения chmod u + x YourScriptFileName.sh
и что ваш сценарий имеет shebang #! / Bin / bash
.