port?: number
rtmpPort?: number
+ rtmpsPort?: number
parallel?: boolean
internalServerNumber: number
this.internalServerNumber = this.parallel ? this.randomServer() : this.serverNumber
this.rtmpPort = this.parallel ? this.randomRTMP() : 1936
+ this.rtmpsPort = this.parallel ? this.randomRTMP() : 1937
this.port = 9000 + this.internalServerNumber
this.url = `http://localhost:${this.port}`
this.app = fork(join(root(), 'dist', 'server.js'), options.peertubeArgs || [], forkOptions)
- const onExit = function () {
- return rej(new Error('Process exited'))
+ const onPeerTubeExit = () => rej(new Error('Process exited'))
+ const onParentExit = () => {
+ if (!this.app || !this.app.pid) return
+
+ try {
+ process.kill(self.app.pid)
+ } catch { /* empty */ }
}
- this.app.on('exit', onExit)
+ this.app.on('exit', onPeerTubeExit)
+ process.on('exit', onParentExit)
this.app.stdout.on('data', function onStdout (data) {
let dontContinue = false
if (options.hideLogs === false) {
console.log(data.toString())
} else {
+ process.removeListener('exit', onParentExit)
self.app.stdout.removeListener('data', onStdout)
- self.app.removeListener('exit', onExit)
+ self.app.removeListener('exit', onPeerTubeExit)
}
- process.on('exit', () => {
- try {
- process.kill(self.app.pid)
- } catch { /* empty */ }
- })
-
res()
})
})
},
storage: {
tmp: `test${this.internalServerNumber}/tmp/`,
+ bin: `test${this.internalServerNumber}/bin/`,
avatars: `test${this.internalServerNumber}/avatars/`,
videos: `test${this.internalServerNumber}/videos/`,
streaming_playlists: `test${this.internalServerNumber}/streaming-playlists/`,