「GNOME 3」- 以单实例运行应用、仅允许应用启动一次

  CREATE BY JENKINSBOT

问题描述

我们使用 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