2
我在Oracle Linux上。我有一個shell腳本,可以執行以下操作:Linux中所有打開的gnome終端的列表或名稱
#some stuff happening here
gnome-terminal --title='my application' -x /path/my_application -param val
#some more stuff
現在,腳本很可能會執行多次。但是,我只想要my_application
如果它尚未運行就會啓動。我發現下面的代碼是這樣的:
ps cax | grep my_application > /dev/null
if [ $? -eq 0 ]; then
echo "My application already running."
else
gnome-terminal --title='my application' -x /path/my_application -param val
fi
這工作正常。這是我遇到問題的地方。我有第二個shell腳本。它也運行my_application
,但具有不同的參數。有可能兩個腳本一起執行。如果發生這種情況,必須運行兩個實例my_application
,因爲它們具有不同的參數。我的想法是給每個gnome-terminal一個不同的標題,然後在開始my_application
之前檢查是否存在具有該標題的gnome終端。
這就是說,我可能會在這個完全錯誤的,所以任何建議,歡迎。
總之,我有兩個腳本都啓動相同的應用程序,但具有不同的參數。這兩個腳本可以一起執行並且每次執行多次。如果給定的腳本啓動了該應用程序,那麼當該腳本再次執行時(假定所述應用程序仍在運行),它不能再次啓動該應用程序。但是,啓動應用程序的一個腳本不得阻止其他腳本啓動相同的應用程序。
我不知道羊羣,所以感謝。但是,該特定解決方案不起作用。相反,它應該是這樣的:gnome-terminal --title ='我的應用程序'-x flock -n/var/lock/mylock1/path/my_application -param val – PhilBel