From: Adrian S. J. <AS...@pa...> - 2002-01-14 14:45:30
|
> From: Peter Crowther [mailto:pet...@ne...] >=20 > > From: Adrian St. John [mailto:AS...@pa...] > > I've found the reason for that happening; It occurs if you > > overwrite the running executable. Solaris nicely trashes the > > entire game because the 'mv' seems to truncate the file, rather > > than unlink & recreate. >=20 > Er... I thought most *nixes did that. I always moved the old=20 > file out of > the way, then copied the new one to the old patchname, which=20 > is why you got > netmud.old... or am I talking out of my hat here? My understanding was that certain version of mv will unlink() the target if it exists, and other will creat(O_TRUNC) (or whatever the correct argument is). Anyway, this should no longer happen, as in our cunning new way of running things, we name netmud after the release version (eg netmud_019 is the currently running process), and have a soft-link named netmud. That way the process list shows which version we're running. It also means that we get to keep older (known stable) versions around without trying to be clever with the naming convention. One day I'll get the Makefile to do the rename bit automatically (The release version is only used if you check out a formal release level, so normal hacking on the code wont be affected.) Adrian. |