mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
another way of checking if process is running
This commit is contained in:
parent
19b18d0719
commit
9045746466
132
gui/main.js
132
gui/main.js
|
@ -9,7 +9,9 @@ const { autoUpdater } = require('electron-updater');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const exec = require('child_process').spawn;
|
const spawn = require('child_process').spawn;
|
||||||
|
const exec = require('child_process').exec;
|
||||||
|
|
||||||
const log = require('electron-log');
|
const log = require('electron-log');
|
||||||
const mainLog = log.scope('main');
|
const mainLog = log.scope('main');
|
||||||
const daemonProcessLog = log.scope('freedata-daemon');
|
const daemonProcessLog = log.scope('freedata-daemon');
|
||||||
|
@ -285,7 +287,7 @@ app.whenReady().then(() => {
|
||||||
mainLog.info('Starting freedata-daemon binary');
|
mainLog.info('Starting freedata-daemon binary');
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
if(os.platform()=='darwin'){
|
||||||
daemonProcess = exec(path.join(process.resourcesPath, 'tnc', 'freedata-daemon'), [],
|
daemonProcess = spawn(path.join(process.resourcesPath, 'tnc', 'freedata-daemon'), [],
|
||||||
{
|
{
|
||||||
cwd: path.join(process.resourcesPath, 'tnc'),
|
cwd: path.join(process.resourcesPath, 'tnc'),
|
||||||
});
|
});
|
||||||
|
@ -310,7 +312,7 @@ app.whenReady().then(() => {
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
|
||||||
daemonProcess = exec(path.join(process.resourcesPath, 'tnc', 'freedata-daemon'), [],
|
daemonProcess = spawn(path.join(process.resourcesPath, 'tnc', 'freedata-daemon'), [],
|
||||||
{
|
{
|
||||||
cwd: path.join(process.resourcesPath, 'tnc'),
|
cwd: path.join(process.resourcesPath, 'tnc'),
|
||||||
});
|
});
|
||||||
|
@ -321,7 +323,7 @@ app.whenReady().then(() => {
|
||||||
// for windows the relative path via path.join(__dirname) is not needed for some reason
|
// for windows the relative path via path.join(__dirname) is not needed for some reason
|
||||||
//daemonProcess = exec('\\tnc\\daemon.exe', [])
|
//daemonProcess = exec('\\tnc\\daemon.exe', [])
|
||||||
|
|
||||||
daemonProcess = exec(path.join(process.resourcesPath, 'tnc', 'freedata-daemon.exe'), [],
|
daemonProcess = spawn(path.join(process.resourcesPath, 'tnc', 'freedata-daemon.exe'), [],
|
||||||
{
|
{
|
||||||
cwd: path.join(process.resourcesPath, 'tnc'),
|
cwd: path.join(process.resourcesPath, 'tnc'),
|
||||||
});
|
});
|
||||||
|
@ -735,20 +737,20 @@ function close_sub_processes(){
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if(os.platform()=='win32' || os.platform()=='win64'){
|
if(os.platform()=='win32' || os.platform()=='win64'){
|
||||||
exec('Taskkill', ['/IM', 'freedata-tnc.exe', '/F'])
|
spawn('Taskkill', ['/IM', 'freedata-tnc.exe', '/F'])
|
||||||
exec('Taskkill', ['/IM', 'freedata-daemon.exe', '/F'])
|
spawn('Taskkill', ['/IM', 'freedata-daemon.exe', '/F'])
|
||||||
}
|
}
|
||||||
|
|
||||||
if(os.platform()=='linux'){
|
if(os.platform()=='linux'){
|
||||||
|
|
||||||
exec('pkill', ['-9', 'freedata-tnc'])
|
spawn('pkill', ['-9', 'freedata-tnc'])
|
||||||
exec('pkill', ['-9', 'freedata-daemon'])
|
spawn('pkill', ['-9', 'freedata-daemon'])
|
||||||
}
|
}
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
if(os.platform()=='darwin'){
|
||||||
|
|
||||||
exec('pkill', ['-9', 'freedata-tnc'])
|
spawn('pkill', ['-9', 'freedata-tnc'])
|
||||||
exec('pkill', ['-9', 'freedata-daemon'])
|
spawn('pkill', ['-9', 'freedata-daemon'])
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -779,7 +781,7 @@ ipcMain.on('request-start-rigctld',(event, data)=>{
|
||||||
|
|
||||||
|
|
||||||
try{
|
try{
|
||||||
exec(data.path, data.parameters);
|
spawn(data.path, data.parameters);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
}
|
}
|
||||||
|
@ -803,18 +805,18 @@ ipcMain.on('request-stop-rigctld',(event,data)=>{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if(os.platform()=='win32' || os.platform()=='win64'){
|
if(os.platform()=='win32' || os.platform()=='win64'){
|
||||||
exec('Taskkill', ['/IM', 'rigctld.exe', '/F'])
|
spawn('Taskkill', ['/IM', 'rigctld.exe', '/F'])
|
||||||
}
|
}
|
||||||
|
|
||||||
if(os.platform()=='linux'){
|
if(os.platform()=='linux'){
|
||||||
|
|
||||||
exec('pkill', ['-9', 'rigctld'])
|
spawn('pkill', ['-9', 'rigctld'])
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
if(os.platform()=='darwin'){
|
||||||
|
|
||||||
exec('pkill', ['-9', 'rigctld'])
|
spawn('pkill', ['-9', 'rigctld'])
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -827,68 +829,50 @@ ipcMain.on('request-stop-rigctld',(event,data)=>{
|
||||||
// CHECK RIGCTLD
|
// CHECK RIGCTLD
|
||||||
ipcMain.on('request-check-rigctld',(data)=>{
|
ipcMain.on('request-check-rigctld',(data)=>{
|
||||||
try {
|
try {
|
||||||
|
let Data = {
|
||||||
|
state: "unknown",
|
||||||
|
};
|
||||||
|
|
||||||
if(os.platform()=='win32' || os.platform()=='win64'){
|
isRunning('rigctld', (status) => {
|
||||||
var state = exec('tasklist', ['/svc', '/FI', '"ImageName eq rigctld*"'])
|
if (status){
|
||||||
state.on('close', function(code) {
|
Data["state"] = "running";
|
||||||
if(code == 0){
|
} else {
|
||||||
let Data = {
|
Data["state"] = "unknown";
|
||||||
state: "running",
|
}
|
||||||
};
|
win.webContents.send('action-check-rigctld', Data);
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
})
|
||||||
|
|
||||||
} else {
|
|
||||||
let Data = {
|
|
||||||
state: "unknown",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if(os.platform()=='linux'){
|
|
||||||
|
|
||||||
var state = exec('pgrep', ['rigctld'])
|
|
||||||
state.on('close', function(code) {
|
|
||||||
if(code == 0){
|
|
||||||
let Data = {
|
|
||||||
state: "running",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
let Data = {
|
|
||||||
state: "unknown",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
|
||||||
|
|
||||||
var state = exec('pgrep', ['rigctld'])
|
|
||||||
state.on('close', function(code) {
|
|
||||||
if(code == 0){
|
|
||||||
let Data = {
|
|
||||||
state: "running",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
let Data = {
|
|
||||||
state: "unknown",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
mainLog.error(e)
|
mainLog.error(e)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// https://stackoverflow.com/a/51084163
|
||||||
|
// Function for checking if a process is running or not
|
||||||
|
/*
|
||||||
|
isRunning('rigctld', (status) => {
|
||||||
|
if (status){
|
||||||
|
Data["state"] = "running";
|
||||||
|
} else {
|
||||||
|
Data["state"] = "unknown";
|
||||||
|
}
|
||||||
|
win.webContents.send('action-check-rigctld', Data);
|
||||||
|
})
|
||||||
|
*/
|
||||||
|
const isRunning = (query, cb) => {
|
||||||
|
let platform = process.platform;
|
||||||
|
let cmd = '';
|
||||||
|
switch (platform) {
|
||||||
|
case 'win32' : cmd = `tasklist`; break;
|
||||||
|
case 'darwin' : cmd = `ps -ax | grep ${query}`; break;
|
||||||
|
case 'linux' : cmd = `ps -A`; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
exec(cmd, (err, stdout, stderr) => {
|
||||||
|
cb(stdout.toLowerCase().indexOf(query.toLowerCase()) > -1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue