Hi guix-devel.
I recently started using the shepherd to automate services on my guix
system laptop. I wanted to send a message, mostly to express what a
pleasant experience it was! I wrote it up on my blog, with some context.[1]
I did have a couple of difficulties. I got past these, so this isn't
really a "help me" post - more like "is there something I could have
known that would have avoided this?". Or maybe just explaining why the
system works this way. They're in the blog post, but here is a summary:
1. At some point I accidentally ran multiple copies of shepherd
simultaneously. This seems like it’s just an error, since it caused all
herd commands to just hang, but I didn’t get warned about it at all. I
had to kill the shepherd process manually by doing `ps -aux | grep
shepherd` and doing `kill PID`.
2. I couldn’t figure out how to reload my init.d script without doing
the tedious kill shepherd snippet. Also this would have killed my tunnel
to the server if I didn’t have a separate direct-IP tunnel open. I
wonder if it's possible to validate a service definition before running it.
3. Sometimes the error messages I got from shepherd were not super
helpful. For example at one point I gave the service a name which was a
string rather than a symbol, and the error said `Throw to key%exception’
with args ("#<&message message: \"invalid service provision
list\">")'.`. I didn’t actually know what a provision list was until I
read the manual – it would have been nice to see something like expected
symbol but got string "ssh" or something like this.
Anyway, thank you for maintaining such a great piece of software. I hope
this feedback is helpful.
[1]:
https://danielittlewood.xyz/notes/self-hosting-with-tunnels#automating-with-guix
Best wishes,
Dan
- Shepherd testimonial/questions Daniel Littlewood
-