每当其他程序启动时运行我的脚本

每当其他程序启动时运行我的脚本

我想在其他程序开始运行时运行我的脚本(例如文档查看器)。我该怎么做?

答案1

使用包装脚本。

  1. 移动或重命名该工具,以使其无法通过$PATH其通常名称按标准访问。
  2. 创建一个包装脚本来启动您的脚本(如果需要的话在后台启动),然后exec-s 到真正的工具(或者反过来:在后台启动真正的工具并exec-s 到您的脚本;但是如果另一个程序调用包装器并坚持使用其 PID 认为它是工具,这可能会适得其反)。
  3. 将包装脚本放置在工具所在的位置,调整权限等。让它模拟真实的工具。

例子:

#!/bin/sh

/path/to/your/script &
exec /new/path/to/the/real/tool ${1+"$@"}

笔记:

  • ${1+"$@"}黑客攻击解释这里. 您可能对通常的 感到满意"$@"
  • 运行包装器的人将运行您的脚本。它可能是也可能不是您想要的。
  • 在上面的例子中,您的脚本是包装器的子代,然后由工具替换。您的脚本可以找出其父代的 PID,等待直到readlink /proc/<ppid>/exe返回实际工具位置,然后使用信号或其他方式与工具交互。

相关内容