Xen Orchestra on Ubuntu 15.10 - Complete installation instructions
-
Problem is, with processes that run via npm or similar, their name never appears and there is no universal standard for stopping them. Doing so manually is super simple, but in a script is dangerous and ill advised. If you are very brave you can use ps and look for npm, but if the server is running anything else, you might kill the wrong thing.
-
And to complicate things, there is no stop script for xo-server
-
@scottalanmiller said:
Problem is, with processes that run via npm or similar, their name never appears and there is no universal standard for stopping them. Doing so manually is super simple, but in a script is dangerous and ill advised. If you are very brave you can use ps and look for npm, but if the server is running anything else, you might kill the wrong thing.
Doesn't 'cd /install/location' 'npm stop' work? Why make it difficult?
-
@travisdh1 said:
@scottalanmiller said:
Problem is, with processes that run via npm or similar, their name never appears and there is no universal standard for stopping them. Doing so manually is super simple, but in a script is dangerous and ill advised. If you are very brave you can use ps and look for npm, but if the server is running anything else, you might kill the wrong thing.
Doesn't 'cd /install/location' 'npm stop' work? Why make it difficult?
No, there is no stop script.
-
@travisdh1 said:
@scottalanmiller said:
Problem is, with processes that run via npm or similar, their name never appears and there is no universal standard for stopping them. Doing so manually is super simple, but in a script is dangerous and ill advised. If you are very brave you can use ps and look for npm, but if the server is running anything else, you might kill the wrong thing.
Doesn't 'cd /install/location' 'npm stop' work? Why make it difficult?
from my testing npm stop does not work.
It's not even included as a script.
We would have to effectively Ctrl + C out of the crontab job.
-
This will stop it, if you run it as expected and nothing else is running like it:
kill $(ps aux | grep "npm start" | grep -v grep | cut -d' ' -f8)
-
@scottalanmiller said:
@travisdh1 said:
@scottalanmiller said:
Problem is, with processes that run via npm or similar, their name never appears and there is no universal standard for stopping them. Doing so manually is super simple, but in a script is dangerous and ill advised. If you are very brave you can use ps and look for npm, but if the server is running anything else, you might kill the wrong thing.
Doesn't 'cd /install/location' 'npm stop' work? Why make it difficult?
No, there is no stop script.
Well, bother.
-
@DustinB3403 said:
We would have to effectively Ctrl + C out of the crontab job.
Ctrl-C doesn't do what you think that it does.
What we need to do is to send a SIGHUP to the process, which is what I did. It's identifying the process that is the issue.
-
@scottalanmiller said:
This will stop it, if you run it as expected and nothing else is running like it:
kill $(ps aux | grep "npm start" | grep -v grep | cut -d' ' -f8)
Will test in a moment.
Have to complete another job real fast.
-
Where the problem lies is that npm does not appear to store the PID anywhere on its own. Could we had that manually to the cron job? Of course, but that would not be universal by any stretch and we'd be left with a script that only worked with that specific means of starting.
-
kill $(ps aux | grep "npm start" | grep -v grep | cut -d' ' -f8)
Doesn't work.
-
What is your output of...
ps aux | grep "npm start" | grep -v grep | cut -d' ' -f8
and...
ps aux | grep "npm"
-
@scottalanmiller said:
Where the problem lies is that npm does not appear to store the PID anywhere on its own. Could we had that manually to the cron job? Of course, but that would not be universal by any stretch and we'd be left with a script that only worked with that specific means of starting.
This sounds like one of those "It would be really easy to do with an init/systemd script", that nobody has the time to spend working on currently. (If I did, I'd write one.)
-
This appears to work:
kill $(ps aux | grep "node bin/xo-server" | grep -v grep | cut -d' ' -f8)
-
That is exactly what is needed. If this was the old init style, I know it pretty well. Have made a lot of those. Don't know how it works on Ubuntu 15.10.
Although we'd need to package this all up, but that's not that hard.
We are getting closer and closer to making an RPM here.
-
@Danp said:
This appears to work:
kill $(ps aux | grep "node bin/xo-server" | grep -v grep | cut -d' ' -f8)
Interesting. Good call.
-
@Danp said:
This appears to work:
kill $(ps aux | grep "node bin/xo-server" | grep -v grep | cut -d' ' -f8)
Confirmed.
-
So this script should work.
Going to update my script and test.
-
I'm going to modify the update script to reboot immediately when done updating, 2 minutes just feels way to long.
-
Or better yet... now that we know how...
Stop the XO server... do the updates... start the XO Server... no reboot required.