Server IP : 85.214.239.14 / Your IP : 18.222.181.72 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/cwd/proc/2/root/proc/2/root/usr/lib/node_modules/pm2/node_modules/pidusage/lib/ |
Upload File : |
'use strict' const fs = require('fs') const os = require('os') const requireMap = { ps: () => require('./ps'), procfile: () => require('./procfile'), wmic: () => require('./wmic') } const platformToMethod = { aix: 'ps', os400: 'ps', android: 'procfile', alpine: 'procfile', darwin: 'ps', freebsd: 'ps', os390: 'ps', linux: 'procfile', netbsd: 'procfile', openbsd: 'ps', sunos: 'ps', win: 'wmic' } let platform = os.platform() if (fs.existsSync('/etc/alpine-release')) { platform = 'alpine' } if (platform.match(/^win/)) { platform = 'win' } let stat try { stat = requireMap[platformToMethod[platform]]() } catch (err) {} /** * @callback pidCallback * @param {Error} err A possible error. * @param {Object} statistics The object containing the statistics. */ /** * Get pid informations. * @public * @param {Number|Number[]|String|String[]} pids A pid or a list of pids. * @param {Object} [options={}] Options object * @param {pidCallback} callback Called when the statistics are ready. */ function get (pids, options, callback) { let fn = stat if (platform !== 'win' && options.usePs === true) { fn = requireMap.ps() } if (fn === undefined) { return callback(new Error(os.platform() + ' is not supported yet, please open an issue (https://github.com/soyuka/pidusage)')) } let single = false if (!Array.isArray(pids)) { single = true pids = [pids] } if (pids.length === 0) { return callback(new TypeError('You must provide at least one pid')) } for (let i = 0; i < pids.length; i++) { pids[i] = parseInt(pids[i], 10) if (isNaN(pids[i]) || pids[i] < 0) { return callback(new TypeError('One of the pids provided is invalid')) } } fn(pids, options, function (err, stats) { if (err) { return callback(err) } if (single) { callback(null, stats[pids[0]]) } else { callback(null, stats) } }) } module.exports = get