Это - мой первый вопрос с, Спрашивает Ubuntu, таким образом, я хотел бы заранее поблагодарить Вас за Ваше терпение.
Моя ситуация - это: у Меня есть a *.desktop
файл (который я записал), который, как предполагается, выполняет сценарий оболочки. Мое начальное намерение состояло в том, чтобы поместить этот файл в ~/.config/autostart
так, чтобы это работало бы автоматически при запуске; однако, это заставляет Ubuntu высвечивать рабочий стол в течение доли секунды, затем регистрировать меня, отступают. Я могу дважды щелкнуть по файлу по своему рабочему столу, и он запустит сценарий как, он, как предполагается. Если я беру *.desktop
файл из ~/Desktop
каталог и помещенный это буквально где-либо еще, двойной щелчок по нему в Наутилусе также приведет ко мне вышел из системы сразу.
*.desktop
файл установлен выполнить сценарий оболочки, который запускается bash
в gnome-terminal
. Мои причины того, чтобы сделать это не обязательно важны, поэтому предположите, что это - способ, которым мне нужен он, чтобы быть. Если я добавляю sleep 10
к началу первого сценария оболочки я выхожусь из системы спустя 10 секунд после запуска *.desktop
файл, независимо от того, как это запускается. Кажется, что проблема находится в том, что новое gnome-terminal
окно запускается со второго сценария, но я не понимаю, как или почему это было бы. Настольная запись:
[Desktop entry]
Name=Autocapture
Comment=Starts autocap program
Exec=/Autocapture/Startup/InitSystem
Terminal=false
Type=Application
InitSystem:
#!/bin/bash
nohup gnome-terminal --title=Autocapture --maximize -e "bash -c 'bash /Autocapture/Startup/StartAutocap.sh';bash"
wmctrl -a "Autocapture" # Give focus to new terminal window
kill -9 $PPID # Close this terminal
StartAutocap.sh:
#!/bin/bash
source /usr/local/bin/virtualenvwrapper.sh
workon Autocap
python /path/to/python/module.py
Это предполагается к (и успешно делает, если запущено от рабочего стола) запускают полный экран gnome-terminal
выполнение окна bash
и запуск"module.py
"программа в той сессии удара. Это также закрывает первое gnome-terminal
окно, которое запустило и отсоединило дочерний процесс.
Извините за невероятно длинное первое сообщение. Я просто хочу понять то, что идет не так, как надо здесь и как я смог фиксировать его. Любая справка значительно ценится!
В то время как у меня есть свои теории, я боюсь объявить, что я знаю точно (или даже удаленно), как или почему это работает. Я предположил бы, что это имеет некоторое отношение к пути a *.desktop
средство запуска выполняет свою цель. Возможно, я пытался уничтожить окно терминала гнома после того, как оно было уже закрыто в конце выполнения сценария и закончило тем, что уничтожило мою сессию? Возможно, наоборот? Я не утверждаю, что знал, но я пригласил бы любого, кто делает, чтобы ответить на этот вопрос с Вашим объяснением так, чтобы другие могли научиться на моей ошибке.
Удаление строки kill -9 $PPID
решенный проблема
Если сценарий выполняется от *.desktop
средство запуска, начальная буква gnome-terminal
окно закроется, оставляя второе. Если сценарий выполняется из командной строки (например, $ bash InitSystem
), начальная буква gnome-terminal
окно не закрывается.