![每当其他程序启动时运行我的脚本](https://linux22.com/image/1567010/%E6%AF%8F%E5%BD%93%E5%85%B6%E4%BB%96%E7%A8%8B%E5%BA%8F%E5%90%AF%E5%8A%A8%E6%97%B6%E8%BF%90%E8%A1%8C%E6%88%91%E7%9A%84%E8%84%9A%E6%9C%AC.png)
我想在其他程序开始运行时运行我的脚本(例如文档查看器)。我该怎么做?
答案1
使用包装脚本。
- 移动或重命名该工具,以使其无法通过
$PATH
其通常名称按标准访问。 - 创建一个包装脚本来启动您的脚本(如果需要的话在后台启动),然后
exec
-s 到真正的工具(或者反过来:在后台启动真正的工具并exec
-s 到您的脚本;但是如果另一个程序调用包装器并坚持使用其 PID 认为它是工具,这可能会适得其反)。 - 将包装脚本放置在工具所在的位置,调整权限等。让它模拟真实的工具。
例子:
#!/bin/sh
/path/to/your/script &
exec /new/path/to/the/real/tool ${1+"$@"}
笔记:
${1+"$@"}
黑客攻击解释这里. 您可能对通常的 感到满意"$@"
。- 运行包装器的人将运行您的脚本。它可能是也可能不是您想要的。
- 在上面的例子中,您的脚本是包装器的子代,然后由工具替换。您的脚本可以找出其父代的 PID,等待直到
readlink /proc/<ppid>/exe
返回实际工具位置,然后使用信号或其他方式与工具交互。