如何在xfce4启动器脚本里运行图形界面程序,并脱离脚本运行?

写一个脚本,实现如下功能:
用whiptail显示选择菜单,选择后,根据选项启动xboard(国际象棋程序,图形界面)。大体程序如下:

#!/bin/bash

# 显示xboard常用选项

runbg()
{
nohup $* > /dev/null &
}

OPTION=$(whiptail --title "国际象棋" --menu "选项:" 15 60 3 \
"1" "连接到FICS" \
"2" "分析模式(stockfish)" \
"3" "仅浏览棋局"  3>&1 1>&2 2>&3)
 
exitstatus=$?
if [ $exitstatus = 0 ]; then
case $OPTION in
# xboard是图形界面的国际象棋程序,你们可以换随便哪个图形界面程序,这个不是重点
1)  runbg xboard -ics -icshost freechess.org -icshelper zseal ;;
2)  runbg xboard -fcp "stockfish" -fUCI ;;
3)  runbg xboard -ncp ;;
esac
fi

runbg函数中用nohup,目的是为了脚本运行完毕后xboard不会跟着关闭。这个脚本在模拟终端下运行正常,模拟终端关闭也不影响xboard运行。但放在xfce4启动器里,用终端模式运行,前面菜单正常显示,但xboard还是会立刻随着脚本而关闭,如何处理?多谢哈。

可以尝试创建一个desktop,然后启动器指定它。

我怀疑是 systemd 干的。启动器把程序扔到了一个单独的 systemd scope 里,而默认设置下,主进程退出,其它进程也跟着被清理。

建议用 zenity 取代 whiptail,这样就不用多出来个终端了。