无法正确否认 AppImage
Unable to properly disown AppImage
今晚一直在修修补补,但找不到解决方案。
我写了一个小脚本,我用“popup-shell”调用它,它使用 fzf
到 select 一个文件。我将此文件传递给 marktext
appimage 并否认该过程,之后“popup-shell”关闭。不幸的是,shell 关闭后,marktext
应用程序也关闭了。
我认为问题在于可执行文件被正确地拒绝了,但 appimage mount-stuff 仍在子处理到“popup-shell”。一旦“popup-shell”关闭,appimage mount-stuff 也会关闭,这反过来会导致 marktext
关闭。
进程树式:
popup-shell
+- script that spawns marktext appimage
| +- /tmp/.mount_markXXXXX/marktext ...
| | +- /tmp/.mount_markXXXXX/marktext ...
| | +- /tmp/.mount_markXXXXX/marktext ...
| | +- /tmp/.mount_markXXXXX/marktext ...
| +- /tmp/.mount_markXXXXX/marktext ...
| | +- /tmp/.mount_markXXXXX/marktext ...
| +- /tmp/.mount_markXXXXX/marktext ...
| +- /tmp/.mount_markXXXXX/marktext ...
marktext ...
实际的 marktext
二进制文件似乎已被正确否认。
脚本并不复杂,只是 运行:
marktext <file> &
disown -h %1
任何指点将不胜感激。
您可以使用
setsid -f marktext <file>
到 运行 新会话中的程序。
-f
选项会告诉 setsid
立即分叉到后台。快速测试显示 disown
仍将保留父进程,而 setsid
不会
sleep 100 &
disown -h %1
ps -C sleep -oppid,pid
产出
PPID PID
32772 32806
和
setsid -f sleep 100
ps -C sleep -oppid,pid
产出
PPID PID
1 32814
今晚一直在修修补补,但找不到解决方案。
我写了一个小脚本,我用“popup-shell”调用它,它使用 fzf
到 select 一个文件。我将此文件传递给 marktext
appimage 并否认该过程,之后“popup-shell”关闭。不幸的是,shell 关闭后,marktext
应用程序也关闭了。
我认为问题在于可执行文件被正确地拒绝了,但 appimage mount-stuff 仍在子处理到“popup-shell”。一旦“popup-shell”关闭,appimage mount-stuff 也会关闭,这反过来会导致 marktext
关闭。
进程树式:
popup-shell
+- script that spawns marktext appimage
| +- /tmp/.mount_markXXXXX/marktext ...
| | +- /tmp/.mount_markXXXXX/marktext ...
| | +- /tmp/.mount_markXXXXX/marktext ...
| | +- /tmp/.mount_markXXXXX/marktext ...
| +- /tmp/.mount_markXXXXX/marktext ...
| | +- /tmp/.mount_markXXXXX/marktext ...
| +- /tmp/.mount_markXXXXX/marktext ...
| +- /tmp/.mount_markXXXXX/marktext ...
marktext ...
实际的 marktext
二进制文件似乎已被正确否认。
脚本并不复杂,只是 运行:
marktext <file> &
disown -h %1
任何指点将不胜感激。
您可以使用
setsid -f marktext <file>
到 运行 新会话中的程序。
-f
选项会告诉 setsid
立即分叉到后台。快速测试显示 disown
仍将保留父进程,而 setsid
不会
sleep 100 &
disown -h %1
ps -C sleep -oppid,pid
产出
PPID PID
32772 32806
和
setsid -f sleep 100
ps -C sleep -oppid,pid
产出
PPID PID
1 32814