Вопрос или проблема
Как мне запустить приложение (через лаунчер) так же, как это делает GNOME, в командной строке? Я хочу установить некоторые переменные окружения.
Я знаю, что могу проверить файл лаунчера на наличие команды ‘EXEC’, но по какой-то причине эта команда заставляет моё приложение вылетать; в то время как запущенное через GNOME оно работает нормально.
Я не использовал GNOME несколько лет, но в общем, так работают рабочие столы GNOME/MATE/XFCE…
Сначала вам нужно найти команду, которая запускает программу; поиск в меню программ рабочего стола или в конфигурационных файлах должен помочь, или если в меню есть функция “добавить ярлык на рабочий стол”, это может дать вам файл, который легче найти.
Если вы найдете командную строку и выполните её в терминале или в диалоговом окне “ALT-F2 Выполнить команду”, то программа должна запуститься. Если вашей программе нужны аргументы, возможно, их нужно будет заключить в кавычки, чтобы программа правильно их прочитала. В зависимости от программы, возможно, вам придется перейти в нужный каталог, который может быть указан в файле ярлыка, иначе программа может не знать, где искать свои конфигурационные файлы, и завершится.
Определённо найдите правильную команду и попробуйте её в окне терминала. Если вы находитесь в bash и команда запускается, то терминал, скорее всего, останется открытым, пока программа работает на рабочем столе. Обычно вы можете заставить терминал закрыться и оставить программу работающей, если управление заданиями терминала настроено так, что опция shopt checkjobs
не включена, или если сначала вы запустите программу в фоновом режиме (с помощью CTRL-Z и bg
и disown
, или запустив её как commandline &
, затем bg
, затем disown
), тогда вы сможете закрыть терминал, в то время как программа всё ещё будет работать. dash (часто sh) тоже имеет управление задачами, но может не иметь команды disown, однако его редко используют в качестве интерактивного терминала, насколько я знаю.
Программа не должна вылетать с ошибкой сегментации просто потому, что она запущена из неправильного каталога или не может найти свой конфигурационный файл; это считалось бы ошибкой, но немедленное завершение может выглядеть как “сбой”…
Ответ или решение
Чтобы запустить приложение так, как это делает GNOME, через командную строку, необходимо учитывать несколько важных аспектов. Ниже представлена пошаговая инструкция, которая поможет разобраться в этом процессе, включая установку переменных окружения.
Шаг 1: Определение команды запуска
Первоначально вам нужно определить, какая команда используется для запуска приложения в GNOME. Это можно сделать, проверив файл .desktop, связанный с вашим приложением. Эти файлы обычно находятся в /usr/share/applications/
или в ~/.local/share/applications/
. Откройте файл, чтобы найти строку, начинающуюся с Exec=
. Она будет содержать команду, используемую для запуска приложения.
Пример:
[Desktop Entry]
Version=1.0
Name=MyApp
Exec=myapp --option=value
Type=Application
Шаг 2: Установка необходимых переменных окружения
Если вам необходимо установить переменные окружения перед запуском приложения, это можно сделать в терминале. Эти переменные могут включать в себя настройки, необходимые для корректной работы приложения.
Пример установки переменной окружения перед запуском приложения:
export MY_VAR=value
myapp --option=value
Шаг 3: Запуск приложения из командной строки
Для запуска приложения через командную строку используйте команду, найденную в файле .desktop. Если команда требует аргументы, убедитесь, что они указаны правильно, возможно, с необходимыми кавычками.
Пример командной строки:
myapp --option=value
Шаг 4: Переход в нужный каталог (если требуется)
Если приложение требует, чтобы оно запускалось из определённого каталога (например, чтобы найти свои конфигурационные файлы), используйте команду cd
, чтобы перейти в нужный каталог перед запуском:
cd /path/to/directory
myapp --option=value
Шаг 5: Проверка работы приложения
Если ваш запуск вызывает сбой приложения (например, "segmentation fault"), это может быть связано с тем, что вы запускаете его не из того каталога, или приложение не может найти свои конфигурационные файлы. Убедитесь, что вы следуете всем шагам правильно.
Альтернативные способы запуска
Если вы хотите, чтобы приложение продолжало работать даже после закрытия терминала, вы можете запустить его в фоновом режиме:
myapp --option=value &
disown
Также можно использовать программу nohup
для запуска приложения:
nohup myapp --option=value &
Это защитит ваш процесс от завершения в случае закрытия терминала.
Заключение
Запуск приложений в GNOME через командную строку может показаться сложным, но следуя вышеописанным шагам, вы сможете сделать это правильно. Обязательно учитывайте переменные окружения и необходимые каталоги для корректной работы программы. Если приложение все равно не запускается, возможно, причина кроется в самом приложении, и стоит обратиться к логам для дальнейшей диагностики проблемы.