From 0a36a484d464cf8375fab34fad250dfd628fd15f Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Fri, 20 Nov 2020 18:39:48 +0100 Subject: [PATCH] fix(linux): Deal with multiple users running `ibus-daemon` If there are multiple users running `ibus-daemon` processes on the machine, we restart ibus for all of them. --- linux/ibus-keyman/debian/postinst | 12 ++++++------ linux/ibus-keyman/debian/postrm | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/linux/ibus-keyman/debian/postinst b/linux/ibus-keyman/debian/postinst index fca90909bd..fef6e8854a 100644 --- a/linux/ibus-keyman/debian/postinst +++ b/linux/ibus-keyman/debian/postinst @@ -13,15 +13,15 @@ case "$1" in ! gspid=`ps -C gnome-shell -o pid=|head -n 1` if [ "x$gspid" != "x" ]; then # gnome-shell has multiple ibus-daemon processes and needs exit instead of restart - ibususer=`ps -C ibus-daemon -o user=|grep -v gdm|uniq` - if [ "x$ibususer" != "x" ]; then + ibususers=`ps -C ibus-daemon -o user=|grep -v gdm|uniq` + for ibususer in $ibususers; do sudo -H -u "$ibususer" ibus exit || true - fi + done else - ibususer=`ps -C ibus-daemon -o user=|uniq` - if [ "x$ibususer" != "x" ]; then + ibususers=`ps -C ibus-daemon -o user=|uniq` + for ibususer in $ibususers; do sudo -H -u "$ibususer" ibus restart || true - fi + done fi fi ;; diff --git a/linux/ibus-keyman/debian/postrm b/linux/ibus-keyman/debian/postrm index 1f77d4434d..c1f3425606 100644 --- a/linux/ibus-keyman/debian/postrm +++ b/linux/ibus-keyman/debian/postrm @@ -13,15 +13,15 @@ case "$1" in ! gspid=`ps -C gnome-shell -o pid=|head -n 1` if [ "x$gspid" != "x" ]; then # gnome-shell has multiple ibus-daemon processes and needs exit instead of restart - ibususer=`ps -C ibus-daemon -o user=|grep -v gdm|uniq` - if [ "x$ibususer" != "x" ]; then + ibususers=`ps -C ibus-daemon -o user=|grep -v gdm|uniq` + for ibususer in $ibususers; do sudo -H -u "$ibususer" ibus exit || true - fi + done else - ibususer=`ps -C ibus-daemon -o user=|uniq` - if [ "x$ibususer" != "x" ]; then + ibususers=`ps -C ibus-daemon -o user=|uniq` + for ibususer in $ibususers; do sudo -H -u "$ibususer" ibus restart || true - fi + done fi fi ;;