![等待分叉过程完成](https://linux22.com/image/171597/%E7%AD%89%E5%BE%85%E5%88%86%E5%8F%89%E8%BF%87%E7%A8%8B%E5%AE%8C%E6%88%90.png)
我有一个应用程序可以执行以下操作:
#!/bin/bash
tmpfile=$(mktemp)
gedit $tmpfile && pkexec mv $tmpfile $1
效果很好。它创建一个临时文件,在图形编辑器中打开它,当我完成后,它会使用 polkit 移动到具有提升权限的正确位置。
但是...你需要安装 gedit。我更喜欢使用尊重用户桌面环境和偏好的东西。 xdg-open
应该可以,但我有一个问题:
#!/bin/bash
tmpfile=$(mktemp)
xdg-open $tmpfile && pkexec mv $tmpfile $1
xdg-open
是一个分叉过程。它将启动编辑器,然后立即返回...导致mv
在我有机会工作之前就被触发。
有没有办法让我只pkexec mv ...
在编辑器完成后触发?
xdg-open(1)
不提供任何帮助。我是否需要编写某种inotify
工具来阻止,直到从 FD 读取某个事件为止?