启动ext4文件系统上的一些elf文件后,它被locking写入,但可以删除和重写。 在其他文件系统上,这种行为可能会不同 – 我已经testing了virtualboxfs,而且我也无法删除正在运行的可执行文件。
我正在试图通过自启动和自编译模块实现一些持续集成scheme。 这就是为什么我需要解锁和覆盖我的运行二进制文件。 对于ext4我可以删除,然后重新编译文件到旧的地方,但我不喜欢这种情况下,因为inode与旧文件将仍然被阻止。 是否存在一些其他的可能性来实现“透明”的重新编译和重启?
会发生什么是你获得一个文件处理程序到该inode。 您可以删除文件…但文件处理程序仍处于活动状态。 (因此,即使文件被删除,locking的存储也不会被释放)
如果你想replace文件,你需要重新加载文件处理程序。 通常的做法是发送SIGHUP(kill -HUP)
如果您需要在文件更改时自动发生这种情况,您需要一个看门狗代表您执行此操作。 否则你的脚本(或其他)可以把这个信号发送给进程