问题描述
我们使用 HexChat 进行消息的收发,但是每次点击图标时,都将运行新的 HexChat 实例,而不是显示原有窗口。
该笔记将记录:在 GNOME 中,如何以单实例运行应用,即仅允许应用运行一次。
补充说明
# 02/11/2021 目前,我们没有找到更好的方案,因为再好的方案都不如应用本身支持。有些方案属于“补丁”,有些方案仅针对我们的场景。
解决方案
方案一、判断程序是否已经运行
修改应用程序 .desktop 文件的 Exec 属性(我们以 HexChat 为例):
Exec=sh -c 'pidof hexchat 1>/dev/null 2>&1 && notify-send "HexChat" "This program is already running." || hexchat'
该方法,保护我们点击图标时,不会重复运行应用。
参考文献
ubuntu - Limit a gui program in Linux to only one instance - Super User