On Sun, 4 Oct 2015 12:37:29 +0100, Graeme Geldenhuys <mailingli...@geldenhuys.co.uk> wrote:
>On 2015-10-03 19:30, Bo Berglund wrote: >> But how could one exchange a running program on the pi from within >> itself? > >On non-Windows platforms it is much easier, because you can normally >replace a program on file, while it is running in memory. Windows >doesn't allow that. Either way the solution is quite simple for most >platforms. > >tiOPF's 'tiopf_apps' repository includes one such solution. In summary, >the program checks for updates at startup - using HTTP, a database or >whatever. If a update exists, launch the update program and quit. The >update program will then fetch the update, and unpack the archive, then >launch the original program and quit itself. > >For our desktop applications will added a message prompt to ask the >end-user if the want to update, but for a automated system you obviously >don't want that part. This solution has worked for us in production site >for a good few years already. > Thanks for this info! What I had in mind was to let the main program check the update state when it it is run by cron (but only once a day, say first start after midnight). THe check would be done just before it exits (if it has nothing to do or if it has finished a measurement run). If it finds an update it will download it and apparently will be able to replace its own executable before it exits. That is simplifying things a lot compared to Windows. Or it launches an updater program (separate application) and then exits. Then the updater must be able to perform the update before the next time cron calls a run. Could be tricky. There is a race condition. But that would be there also if the main application handles the update because we cannot say if cron starts it again while it is busy measuring. Maybe I would have to think about this race a bit, a lock file maybe.... Anyway the next time it will be the new version running. Of course no user dialog, just silently update if needed. -- Bo Berglund Developer in Sweden _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal