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

Add stop command for reliable systemd shutdown #626

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

rtimmons
Copy link

Thanks for your work on this package!

I've found that running node-sonos-http-api through a systemd service occasionally results in the process "running away" such that systemd can no longer stop or restart it for config-changes or deployments. I doubt this is a bug in node-sonos-http-api (but fwiw this doesn't happen with simple express.js apps running with the same systemd configs).

I am not an expert in systemd or node, but I've found out that adding a npm run stop command solves the issue very reliably and without any real downside that I can see. The stop command just does a pkill of the server using its symbolic process name which is now set at the top of the server.js file.

I've been running with this change for several days and have not had any more "zombie" processes. Contributing this back in case it helps others in the future.

@jishi
Copy link
Owner

jishi commented Jul 4, 2018

I think this must depend on how you setup your systemd daemon for this process? It would be better to now rely on external tools, and maybe act properly on a SIGINT signal inside the app that would shut down gracefully. Could you please explain how you set this up as a systemd service? Or if you followed a guide, which guide?

My advice is usually to use pm2 to host all your node processes (this also has an installable systemd setup) which just handles this nicely as far as I can tell, but of course if there is some improvements to be done to make it easier to set it up with systemd directly, I should look into that.

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

Successfully merging this pull request may close these issues.

2 participants