我有一个主要的过程,分叉和使用已定义的可执行文件执行子进程。 主进程和子进程正在运行无限循环。如果他们停止,Master会重新启动它们。
现在我想更新子进程的可执行文件。类似的东西:
1.复制新的可执行文件
2.杀死子进程(当他们闲置时)
3.主进程使用新的可执行文件重新启动它们
但是简单的cp“new_exec”“old_exec”会返回错误:
“无法打开或删除包含正在运行的程序的文件。”
问题:
我可以使用“cp -f new_file old_file”吗?
这会影响旧的运行进程(在进程启动时是否所有内容都被加载到内存中)?
我在AIX上。
答案 0 :(得分:0)
我可以使用“cp -f new_file old_file”吗? 这会影响旧的运行进程(在进程启动时是否所有内容都加载到内存中)?
'不'和'是'。但是,如果你问过如何解决这个问题,我会说:
rm /oldpath/exec
cp /newpath/exec /oldpath/exec
或者更确切地说:
cp /newpath/exec /oldpath/exec_replace
mv /oldpath/exec_replace /oldpath/exec