Назад | Перейти на главную страницу

Сценарий запуска Linux после входа в Gnome

У меня есть сервер Fedora, на котором я хочу создать интерактивный скрипт Python после входа пользователя в систему. Этот сценарий будет запрашивать у пользователя различные типы информации для настройки системы, или он будет искать предыдущий файл конфигурации и показывать им предопределенную информацию. Первоначально я собирался поместить это в rc.local или запустить с помощью init.d, но это испортило загрузку из-за того, как создается скрипт. Поэтому я хотел бы, чтобы этот сценарий запускался, как только пользователь входит в Gnome. Я немного поискал и нашел этот ответ, который кажется именно тем, что я хочу, но он не работает так, как я хочу. Ниже моя запись.

[Desktop Entry]
Name=MyScript
GenericName=Script for initial configuration
Comment=I really want this to work
Exec=/usr/local/bin/myscript.sh
Terminal=true
Type=Application
X-GNOME-Autostart-enabled=true

Каждый раз, когда я вхожу в систему, ничего не происходит. Затем я провел тест на модифицированном "myscript.sh", чтобы просто выводить текст в файл, и он работал нормально. Таким образом, похоже, что часть, которая не работает, - это сценарий, открывающий терминал и ожидающий ввода пользователя. Есть ли какие-то дополнительные параметры, которые мне нужно добавить, чтобы эта работа работала? Я могу подтвердить, что когда я запускаю /usr/local/bin/myscript.sh из интерфейса командной строки, он работает нормально. Я также попытался добавить StartupNotify = true, но все равно не повезло.

Отредактируйте @John - я попытался переместить свой Exec = в / usr / local / bin / myscript-test, и это то, что содержит myscript-test.

#!/bin/bash 
xterm -e /usr/local/bin/myscript.sh

И снова, когда я просто запускаю myscript-test, он работает нормально. Однако, когда я помещаю это в свой автозапуск, ничего не происходит.

Изменить 2 - я провел еще несколько тестов, и он начал работать, но мне пришлось удалить Terminal = True, прежде чем появится xterm. Спасибо за вашу помощь.

Это всего лишь предположение, но похоже, что исходный myscript.sh просто запускает сценарий Python. У вас нет терминала, поэтому он не знает, как его открыть. В этом случае вам необходимо явно запустить терминал в myscript.sh и запустить скрипт Python внутри этого терминала. Что-то вроде "xterm -e" должно это сделать (это было из заведомо плохой памяти, и у меня нет справочной страницы для xterm, поэтому, пожалуйста, не пробуйте дословно).