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

Process AIX:更改正在运行的程序的可执行文件,process,executable,aix,Process,Executable,Aix,我有一个主进程,它用定义的可执行文件派生和执行子进程。 主进程和子进程正在运行无限循环。如果它们停止,Master将重新启动它们 现在我想更新子进程的可执行文件。比如: 1.复制新的可执行文件 2.在子进程空闲时杀死它们 3.主进程使用新的可执行文件重新启动它们 但简单cp new_exec old_exec返回错误: 无法打开或删除包含正在运行的程序的文件 问题: 我可以使用cp-f新文件旧文件吗? 这会影响旧的运行进程吗?进程启动时是否将所有内容加载到内存中 我在AIX上 我可以使用cp-f

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

现在我想更新子进程的可执行文件。比如: 1.复制新的可执行文件 2.在子进程空闲时杀死它们 3.主进程使用新的可执行文件重新启动它们

但简单cp new_exec old_exec返回错误: 无法打开或删除包含正在运行的程序的文件

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

我在AIX上

我可以使用cp-f新文件旧文件吗? 这会影响旧的运行进程吗?进程启动时是否将所有内容加载到内存中

“不”和“是”。但是,如果你问如何解决这个问题,我会说:

rm /oldpath/exec
cp /newpath/exec /oldpath/exec
或者更确切地说:

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

第二种方法是首选的,因为me将是原子的。好的,谢谢。根据ManCP:cp-f删除旧文件,然后复制新文件。所以mv更好,因为它是原子的。我只需要用mv-f运行它,在覆盖之前禁用提示符。