Bash 脚本如何将自身与 fork 中可执行二进制文件的启动分离、关闭,即在 Bash 一开始以 $ sed & exit 的形式在终端启动器(例如 Xfce)上启动自身
xfce4-terminal --execute bash --rcfile ini.sh
这不起作用,这个问题可能只在特定情况下很少发生:二进制文件由二进制文件执行,即 Wine 使用
当然,像往常一样,无需脚本即可完成
$ cat ini.sh
cd /home/$USER/.wine/drive_c/shamela4; LC_ALL=ar_SA.UTF-8 wine64 app/win/64/bin/shamela.exe & exit
也不与...&{ sleep 17; exit ;}
它将完全关闭 Bash 和正在运行的可执行二进制文件,否则
请解释一下到底发生了什么
答案1
关闭终端后,您需要分离要在后台继续运行的进程...在 Bash 中,可以使用内置的 shell 来完成此操作disown
。例如,您可以在终端中执行如下操作:
cd /home/$USER/.wine/drive_c/shamela4; LC_ALL=ar_SA.UTF-8 wine64 app/win/64/bin/shamela.exe & disown; exit
...关闭终端后仍保持进程运行。
有关解释,请参阅依赖于后台作业完成的命令