FIX restart

main
Filip Borum Poulsen 2 years ago
parent 02f0457143
commit a5a5b81b06

@ -66,15 +66,26 @@ app.get('/videos', (req, res) => {
}); });
let process = null; let process = null;
let mayRestart = false;
if (fs.existsSync('/tmp/video')) { if (fs.existsSync('/tmp/video')) {
const initialVideo = fs.readFileSync('/tmp/video'); const initialVideo = fs.readFileSync('/tmp/video');
process = require('child_process').spawn('ffplay', ['-fs', '-loop', '2147483647', '-hide_banner', '-loglevel', 'error', initialVideo]); process = require('child_process').spawn('ffplay', ['-fs', '-loop', '2147483647', '-hide_banner', '-loglevel', 'error', initialVideo]);
process.on("exit", () => {
if (!mayRestart) {
process = require('child_process').spawn('ffplay', ['-fs', '-loop', '2147483647', '-hide_banner', '-loglevel', 'error', initialVideo]);
}
});
} }
fs.mkdirSync('/video', { recursive: true });
app.post('/play', (req, res) => { app.post('/play', (req, res) => {
if (process) { if (process) {
mayRestart = true;
process.kill(); process.kill();
mayRestart = false;
} }
let video = req.query.video; let video = req.query.video;
@ -98,6 +109,12 @@ app.post('/play', (req, res) => {
console.error(`stderr: ${data}`); console.error(`stderr: ${data}`);
}); });
process.on("exit", () => {
if (!mayRestart) {
process = require('child_process').spawn('ffplay', ['-fs', '-loop', '2147483647', '-hide_banner', '-loglevel', 'error', video]);
}
});
res.json({ status: 'ok' }); res.json({ status: 'ok' });
}); });

@ -2,12 +2,17 @@
Description=Video Player Description=Video Player
After=multi-user.target After=multi-user.target
StartLimitIntervalSec=500
StartLimitBurst=50
[Service] [Service]
WorkingDirectory=/home/steady/video-player WorkingDirectory=/home/steady/video-player
ExecStart=node /home/steady/video-player/index.js ExecStart=node /home/steady/video-player/index.js
Environment=DISPLAY=:0 Environment=DISPLAY=:0
User=1000 User=1000
Group=1000 Group=1000
Restart=on-failure
RestartSec=5s
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
Loading…
Cancel
Save