我在ubuntu中添加了應用程序的快捷方式。每次按快捷鍵時,都會創建一個新的應用程序實例。我只需要一個實例,我可以使用哪些腳本打開應用程序的現有實例,或者在應用程序未運行時創建一個新腳本?Bash腳本 - 運行應用程序的當前或新實例
回答
這很大程度上取決於應用。最簡單的情況是隻能由您(也就是在系統上沒有遺漏任何情況下)來運行,已知的進程名:
pidof applicaton || /usr/bin/application
打開現有的應用程序可能會變得棘手,並再次,要看應用。我建議你看看alltray thingie,並特別注意alltray --help
輸出。
編輯由ypnos: 如果你想限制這只是當前用戶,你應該使用p纖ep代替的pidof,像這樣:
pgrep -u `id -u` application || application
謝謝,效果很好。 – 2009-09-14 20:05:43
您也可以嘗試這樣的腳本:
#! /bin/bash
user=`id -un`
lock=/tmp/$user-$1-lock
if [ -e $lock ]; then
exit #app is already running
fi
touch $lock
[email protected]
rm $lock
如果你調用的腳本 'runner.sh',你可以使用它像這樣:
runner.sh xcalc
適用於pidof不起作用的情況。否則去黑客的解決方案,這也是更強大。
腳本也很棒,謝謝。 – 2009-09-14 20:06:55
儘管我瞭解您的腳本,但它確保即使有許多用戶登錄並使用相同的應用程序,只有一個應用程序實例可以在系統範圍內運行? – 2009-09-14 20:13:26
不,鎖文件綁定到用戶,請參閱腳本中的變量$ user。 – ypnos 2009-09-14 20:22:13
- 1. 從Android應用程序遠程運行bash腳本的步驟
- 2. bash腳本運行使用掃描器的Java應用程序
- 3. 從腳本當前目錄中運行Python中的子進程bash腳本
- 4. 如何在java-ee web應用程序中運行bash腳本?
- 5. 在當前運行的應用程序實例中獲取ClickOnce查詢參數
- 6. 當應用程序執行腳本時,bash腳本中的SSH命令未運行
- 7. Bash:使用'at'編程當前腳本的下一次執行
- 8. 我可以在ViM中運行當前腳本或腳本嗎?
- 9. Bash退出前運行腳本
- 10. 管道尾部輸出到當前運行的bash腳本
- 11. 如果調用另一個實例,請重新運行bash腳本
- 12. 用sh運行bash腳本
- 13. iOS應用程序運行腳本
- 14. Elixir應用程序運行PHP腳本
- 15. 應用按鈕打開另一個應用程序的當前/新實例
- 16. 用於在後臺運行應用程序的腳本腳本
- 17. 從sh或bash腳本運行/調用Windows批處理腳本
- 18. 無法在當前環境中多次運行BASH腳本
- 19. 在bash腳本中從當前終端運行命令
- 20. 如何在運行不同程序時運行bash腳本?
- 21. 跨JVM或應用程序實例或Tomcat實例的單身
- 22. 從正在運行的bash腳本中確定當前的進程優先級
- 23. Bash腳本 - 維護多個實例運行
- 24. 在nohup bash腳本中運行幾個matlab實例
- 25. 從一個實例運行另一個應用程序實例。
- 26. 運行C#應用程序的多個實例
- 27. awk的運行bash腳本
- 28. 運行python腳本的Bash腳本
- 29. 並行運行bash腳本?
- 30. 並行運行bash腳本
看看它是否已經在運行,並可選擇點擊Alt + Tab? – 2009-09-14 19:47:51
我使用的應用程序是系統托盤中的簡單字典,不會出現在Alt + Tab中。我經常使用它,所以我在閱讀文章的過程中多次按下快捷鍵,所以我希望它按照快捷鍵快速打開。 – 2009-09-14 19:53:02