在桌面之外開啟 .desktop 檔案會立即登出

在桌面之外開啟 .desktop 檔案會立即登出

這是我透過 Ask Ubuntu 提出的第一個問題,所以我想提前感謝您的耐心等待。

我的情況是這樣的:我有一個*.desktop檔案(我寫的)應該執行 shell 腳本。我最初的意圖是將這個文件放入其中,~/.config/autostart以便它在啟動時自動運行;然而,這會導致 Ubuntu 瞬間刷新桌面,然後退出。我可以雙擊桌面上的文件,它將像預期的那樣啟動腳本。如果我將*.desktop檔案從~/Desktop目錄中取出並放在其他任何地方,在 Nautilus 中雙擊它也會導致我立即登出。

*.desktop文件被設定為執行bashgnome-terminal.我這樣做的原因並不一定重要,所以請假設這就是我需要的方式。如果我新增sleep 10到第一個 shell 腳本的開頭,則*.desktop無論檔案如何啟動,我都會在啟動檔案 10 秒後登出。問題似乎在於,一個新gnome-terminal視窗是從第二個腳本啟動的,但我不明白這是如何或為什麼會這樣。桌面入口:

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

初始化系統:

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

啟動Autocap.sh:

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

這應該(並且成功地執行,如果從桌面啟動)啟動一個全螢幕gnome-terminal視窗運行並在該 bash 會話中bash啟動「 」程式。module.py它還關閉gnome-terminal啟動並分離子進程的第一個視窗。

抱歉第一篇文章太長了。我只是想了解這裡出了什麼問題以及如何解決它。任何幫助是極大的讚賞!

答案1

雖然我有自己的理論,但我不敢宣稱我確切地(甚至遠遠地)知道這是如何或為什麼起作用的。我想這與啟動器執行其目標的方式有關*.desktop。也許我試圖在腳本執行結束時關閉 gnome-terminal 視窗並最終終止我的會話?也許反之亦然?我不聲稱知道,但我會邀請任何知道的人請回答這個問題並給出你的解釋以便其他人可以從我的錯誤中學習。

去掉線kill -9 $PPID就解決了問題

如果從啟動器執行腳本*.desktop,則初始gnome-terminal視窗將關閉,留下第二個視窗。如果從命令列(例如,$ bash InitSystem)執行腳本,則初始gnome-terminal視窗不會關閉。

相關內容