Hacker News new | ask | show | jobs
Golang Automatic Reloads (alexedwards.net)
30 points by alexedwards 4651 days ago
5 comments

That's more of an automatic restart (kill and start the process again) than an automatic reload (update code within the running system). And surely there are non-go-specific tools which can already do that, aren't there?
Yup, such tools exist. I've used peat before for stuff like this:

https://github.com/sjl/peat

CEL is a similar and more generic script: it can do that for any program and works on Linux and Mac.

https://github.com/Dinduks/change-execute-loop

SIGKILL seems a little aggressive for a controlled process restart.
Not to mention the program sigkills itself before it attempts to `exit 0`...
Genuine question - can a process kill itself?

The kill of go-reload was to make sure background processes get cleaned up, but I suspect one of the kill or exit in the close function is superfluous.

> Genuine question - can a process kill itself?

Sure. Send the signal, the signal handler - custom or default - handles it. This works whether the signal comes from another process or its own process.

Or rerun by skelterjohn http://github.com/skelterjohn/rerun
On Windows you can use something like this

http://www.nodesoft.com/foldermonitor

(freeware)

Go also provides a syscall for ReadDirectoryChanges, and one really nice Go library that uses inotify/ReadDirectoryChanges is https://github.com/howeyc/fsnotify