AIX:更改 运行 程序的可执行文件

AIX: change executable of a running program

我有一个主进程,它使用已定义的可执行文件派生并执行子进程。 主进程和子进程是 运行 无限循环。如果它们停止,Master 会重新启动它们。

现在我想更新子进程的可执行文件。类似于:
1.复制新的可执行文件
2. 杀死子进程(当它们空闲时)
3.主进程用新的可执行文件重新启动它们

但是简单cp "new_exec" "old_exec" returns 错误:
"Cannot open or remove a file containing a running program."

问题:
我可以使用 "cp -f new_file old_file" 吗?
这会影响旧的 运行 进程吗(进程启动时是否将所有内容加载到内存中)?

我在 AIX 上。

Can I use "cp -f new_file old_file"? Would that affect old running processes (Is everything loaded into memory on process start)?

'No' 和 'yes'。但是,如果你问如何解决这个问题,我会说:

rm /oldpath/exec
cp /newpath/exec /oldpath/exec

或者更确切地说:

cp /newpath/exec /oldpath/exec_replace
mv /oldpath/exec_replace /oldpath/exec