Abrir o arquivo .desktop fora da área de trabalho efetua logout imediatamente

Abrir o arquivo .desktop fora da área de trabalho efetua logout imediatamente

Esta é minha primeira pergunta com o Ask Ubuntu, então gostaria de agradecer antecipadamente pela sua paciência.

Minha situação é a seguinte: tenho um *.desktoparquivo (que escrevi) que deveria executar um script de shell. Minha intenção inicial era colocar esse arquivo ~/.config/autostartpara que ele fosse executado automaticamente na inicialização; no entanto, isso faz com que o Ubuntu atualize a área de trabalho por uma fração de segundo e depois me desconecte novamente. Posso clicar duas vezes no arquivo na minha área de trabalho e ele iniciará o script como deveria. Se eu retirar o *.desktoparquivo do ~/Desktopdiretório e colocá-lo literalmente em qualquer outro lugar, clicar duas vezes nele no Nautilus também fará com que eu seja desconectado imediatamente.

O *.desktoparquivo está configurado para executar um script de shell que começa bashem gnome-terminal. Minhas razões para fazer isso não são necessariamente importantes, então, por favor, assuma que é assim que preciso que seja. Se eu adicionar sleep 10ao início do primeiro script de shell, serei desconectado 10 segundos após iniciar o *.desktoparquivo, independentemente de como ele foi iniciado. Parece que o problema está no fato de uma nova gnome-terminaljanela ser iniciada a partir do segundo script, mas não entendo como ou por que isso aconteceria. Entrada na área de trabalho:

[Desktop entry]
Name=Autocapture
Comment=Starts autocap program
Exec=/Autocapture/Startup/InitSystem
Terminal=false
Type=Application

Sistema inicial:

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

IniciarAutocap.sh:

#!/bin/bash
source /usr/local/bin/virtualenvwrapper.sh
workon Autocap
python /path/to/python/module.py

Isto deveria (e faz com sucesso, se iniciado a partir do desktop) iniciar uma gnome-terminaljanela de tela inteira em execução bashe iniciar o module.pyprograma " " naquela sessão bash. Também fecha a primeira gnome-terminaljanela que iniciou e desanexou o processo filho.

Desculpe pelo primeiro post incrivelmente longo. Eu só quero entender o que está errado aqui e como posso consertar isso. Qualquer ajuda é muito apreciada!

Responder1

Embora tenha as minhas teorias, tenho medo de proclamar que sei exactamente (ou mesmo remotamente) como ou porquê isto funciona. Imagino que tenha algo a ver com a forma como um *.desktoplançador executa seu alvo. Talvez eu estivesse tentando matar a janela do gnome-terminal depois que ela já havia sido fechada no final da execução do script e acabei matando minha sessão? Talvez vice-versa? Não tenho a pretensão de saber, mas convidaria qualquer um que soubessepor favor responda esta pergunta com sua explicaçãopara que outros possam aprender com meu erro.

Remover a linha kill -9 $PPIDresolveu o problema

Se o script for executado a partir do *.desktoplauncher, a janela inicial gnome-terminalserá fechada, deixando a segunda. Se o script for executado na linha de comando (por exemplo, $ bash InitSystem), a janela inicial gnome-terminalnão fecha.

informação relacionada