我已经搜索了一段时间,但我无法找到答案或想出我自己的解决方案,所以我转向你们。我实际上问的第一个问题是:)
我想运行同一程序的多个实例,并将每个程序的标准输出重定向到包含相同进程'pid的文件,如:
my_program > <pid of the instance of my_program that is called in this command>.log
我知道这种情况甚至还没有结束:P我用exec和$ PPID修改了但是无济于事。我的bash-fu很弱:|请帮帮我,指点我!谢谢!
答案 0 :(得分:2)
您可以将程序执行包装到bash脚本中。 bash流程将在exec
来电时替换为您的计划。所以:
#!/bin/bash
exec my_program > $$.log
答案 1 :(得分:0)
在创建进程之前,您无法知道进程的PID。
因此,这是不可能的,您应该重写被调用的程序,使用getpid()
从自己的PID伪造日志名称。