Arno Steffen wrote:
2011/3/29 Harald Becker <[email protected]>:
You can try

ln /bin/busybox /bin/busybox.old
mv busybox /bin/busybox

Then remove /bin/busybox.old after the next reboot.
That is the best way to replace any running executable in place, but
doesn't solve the "Device busy" problem in all cases (that even arise
due to other actions, not only Busybox update). As those problems are a
mess on flash file systems, I focused on the reboot question ... but
otherwise you are right. You can even remove busybox.old right after the
move, it than gets deleted on shutdown automatically.

--
Harald
I cannot confirm that remove of busybox_old is working before reboot.
In this case your device will keep busy and it is impossible to
remount in read-only.
That's pity, as I like this method.
Regards
Arno
If you remove the old program after the move, you might as well omit the link completely. The effect of the additional link is that the program will not be removed at shutdown, as there exists a link to the file. If you remove the link, or don't create the link at all, there is no reference left to the file, just the running processes executing the program. Therefor the file will be removed when the last process exits, which will likely be init.
Most file systems will deal with this without any problems.
In this case the problem is either the flash file system itself that doesn't handle this case, or it may be the fact that the file system was remounted read only, although updates were pending. That should be easy to find out, just replace busybox and then do a reboot without remounting read only.

Ralf
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to