mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
restart: gracefully handle restart failure
In case Grist isn't running with the supervisor (e.g. it's running under nodemon instead via `yarn start`), surface the problem to the frontend.
This commit is contained in:
parent
9ae8918156
commit
960f023618
@ -1886,10 +1886,15 @@ export class FlexServer implements GristServer {
|
||||
process.send({ action: 'restart' });
|
||||
}
|
||||
});
|
||||
// On the topic of http response codes, thus spake MDN:
|
||||
// "409: This response is sent when a request conflicts with the current state of the server."
|
||||
const status = process.send ? 200 : 409;
|
||||
return resp.status(status).send();
|
||||
|
||||
if(!process.env.GRIST_RUNNING_UNDER_SUPERVISOR) {
|
||||
// On the topic of http response codes, thus spake MDN:
|
||||
// "409: This response is sent when a request conflicts with the current state of the server."
|
||||
return resp.status(409).send({
|
||||
error: "Cannot automatically restart the Grist server to enact changes. Please restart server manually."
|
||||
});
|
||||
}
|
||||
return resp.status(200).send({ msg: 'ok' });
|
||||
}));
|
||||
|
||||
// Restrict this endpoint to install admins
|
||||
|
@ -5,7 +5,8 @@ let grist;
|
||||
function startGrist(newConfig={}) {
|
||||
// H/T https://stackoverflow.com/a/36995148/11352427
|
||||
grist = spawn('./sandbox/run.sh', {
|
||||
stdio: ['inherit', 'inherit', 'inherit', 'ipc']
|
||||
stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
|
||||
env: {...process.env, GRIST_RUNNING_UNDER_SUPERVISOR: true}
|
||||
});
|
||||
grist.on('message', function(data) {
|
||||
if (data.action === 'restart') {
|
||||
|
Loading…
Reference in New Issue
Block a user