我想在其他程序开始运行时运行我的脚本(例如文档查看器)。我该怎么做?
答案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
返回实际工具位置,然后使用信号或其他方式与工具交互。