Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Look for suitable process manager to use #3

Closed
jnummelin opened this issue Jun 24, 2020 · 1 comment
Closed

Look for suitable process manager to use #3

jnummelin opened this issue Jun 24, 2020 · 1 comment
Labels
enhancement New feature or request

Comments

@jnummelin
Copy link
Member

mke bin needs to spawn few child processes (containerd and kubelet at least) and make sure they stay up-and-running. This is what process manager does so we should check if there's some nifty golang lib that could handle this. We'd need to make sure that e.g. signal hangling works as expected and we do not create too many zombies and what-nots.

@ncopa
Copy link
Collaborator

ncopa commented Jun 25, 2020

I found https://pkg.go.dev/cirello.io/oversight?tab=doc but it looks like overkill. I also looked at the source of openrc's supervise-deamon and the go implementation of supervisord. I think we can use our own simple supervisor.

We don't need to worry about zombies unless mke runs as pid 1, and even if we do that, we should probably wrap it with tini or similar to take care of zombies. I also found a library we could use in case mke needs to deal with it.

The only thing i'm not 100% sure about is if we need to detach the controlling tty or not, or if we need to manage the logs of the daemons separately (including log rotation and things like that). But that's something we can deal with when needed. go-daemon may be something we could use if we'd ever need that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants