Linux

Dmenu啟動的某些程序在打開後立即關閉

  • April 30, 2020

我寫這個問題是因為我正在嘗試使用 dmenu 啟動一個名為 vimb 的網路瀏覽器,但首先通過一個名為 tabbed 的程序執行它。就上下文而言,vimb 是我喜歡但天生不支持標籤的最小瀏覽器。為此,我需要通過另一個名為 tabbed 的應用程序來執行它。在普通的終端實例中,它可以完美執行,如下所示:

tabbed vimb -e

但是,當使用 dmenu 執行相同的命令時,它會立即打開和關閉一個視窗。

作為旁注,這樣做也會弄亂我的一些腳本(也使用 dmenu)。例如,我有一個自定義腳本,其中列出了我的配置,我可以選擇其中一個來打開一個全新的終端實例並編輯它們。在 dmenu 中執行上述命令時,這些腳本也會遇到類似的現象。在他們的情況下,他們打開一個終端實例但立即關閉它。

我不知道我可以在我的系統上的哪個位置查看發生了什麼。探勘/var/logs對我來說也沒什麼用。

這裡有沒有人知道我可以從哪裡開始解決這個問題?我記得很久以前在不同的視窗管理器中遇到過同樣的問題,所以我不相信是這樣。但我想知道大家的想法。

**更新:**所以我很好奇是否會產生某種我沒有看到的錯誤。所以在 dmenu 我跑了:

tabbed vimb -e >> ~/.foo

它只是……工作。誰能解釋為什麼會這樣?

似乎正在發生的事情是命令正在從 shell 執行,並且應用程序在 shell 執行命令後終止。’&’ 告訴 shell 將程序置於後台,然後當 shell 正常存在時,它不會被殺死。

對於不需要繼續執行的事情,您無需執行此操作,例如切換設置或更改音量。或者對於可以自我妖魔化或檢測到它們已經像鉻一樣執行的應用程序。

這個問題:nohup、disown 和 & 之間的區別

有更多關於 ‘&’ 如何在 shell 上工作和工作控制的細節。在你的 shell 上做一些測試也應該是可行的。

tabbed vimb -e

如果您隨後在同一個 shell 中鍵入 Ctrl + c 它應該關閉視窗並給出新的提示,那麼您不應該看到提示。

現在嘗試輸入:

tabbed vimb -e &

你應該會看到一個新的 shell 提示並且退出 shell 不會殺死瀏覽器。

(像 zsh 這樣的一些 shell 處理 ‘&’ 與 bash 不同)

引用自:https://unix.stackexchange.com/questions/583440