const Telegraf = require('telegraf');
const { exec } = require('child_process');
const os = require('os');
const bot = new Telegraf('TOKEN');
const chatId = '-ID';
const MEMORY = 1024 * 1024 * 1024; // пример для 1 ГБ
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function processExists(processName, callback) {
exec('tasklist', (err, stdout, stderr) => {
callback(stdout.toLowerCase().indexOf(processName.toLowerCase()) > -1);
});
}
async function mainLoop() {
processExists('index.js', async (exists) => {
if (!exists || os.freemem() < MEMORY) {
exec('node index.js', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
bot.telegram.sendMessage(`${chatId}`, '🤚🏻 Скрипт упал или был недостаток памяти, но я его поднял.\n🕘 Время: ' + new Date());
console.log(`СКРИПТ ПЕРЕЗАГРУЖЕН. ВРЕМЯ: ${new Date()}`);
});
}
await sleep(2000);
mainLoop();
});
}
mainLoop();