コンテンツにスキップ

os

Since v8.0.75

osモジュールは、JSHアプリケーション用にNode.js互換のOS情報APIを提供します。

arch()

CPUアーキテクチャを返します。

構文
arch()
使用例
1
2
const os = require('os');
console.println(os.arch());

platform()

darwinlinuxwindowsなどのプラットフォーム名を返します。

構文
platform()
使用例
1
2
const os = require('os');
console.println(os.platform());

type()

DarwinLinuxWindows_NTなどのOSの種類を表す文字列を返します。

構文
type()
使用例
1
2
const os = require('os');
console.println(os.type());

release()

カーネルのリリース・バージョン文字列を返します。

構文
release()
使用例
1
2
const os = require('os');
console.println(os.release());

hostname()

ホスト名を返します。

構文
hostname()
使用例
1
2
const os = require('os');
console.println(os.hostname());

homedir()

現在のユーザーのホームディレクトリのパスを返します。

構文
homedir()
使用例
1
2
const os = require('os');
console.println(os.homedir());

tmpdir()

OSの既定の一時ディレクトリのパスを返します。

構文
tmpdir()
使用例
1
2
const os = require('os');
console.println(os.tmpdir());

endianness()

CPUのエンディアンを返します。値はBEまたはLEです。

構文
endianness()
使用例
1
2
const os = require('os');
console.println(os.endianness());

EOL

プラットフォーム固有の改行文字列です。

  • POSIX: \n
  • Windows: \r\n
使用例
1
2
const os = require('os');
console.println(JSON.stringify(os.EOL));

totalmem(), freemem()

システムの総メモリまたは空きメモリをバイト単位で返します。

構文
totalmem()
freemem()
使用例
1
2
3
const os = require('os');
console.println('total:', os.totalmem());
console.println('free :', os.freemem());

uptime()

システムの稼働時間を秒単位で返します。

構文
uptime()
使用例
1
2
const os = require('os');
console.println(os.uptime() >= 0);

bootTime()

システムの起動時刻をUnixタイムスタンプで返します。

構文
bootTime()
使用例
1
2
const os = require('os');
console.println(os.bootTime() > 0);

loadavg()

平均負荷を[1分, 5分, 15分]の配列で返します。

構文
loadavg()
使用例
1
2
3
const os = require('os');
const avg = os.loadavg();
console.println(Array.isArray(avg), avg.length);

cpus()

CPUコアごとの情報の配列を返します。

各項目には、以下のフィールドが含まれます。

  • model, speed, cores
  • vendor, family, model, stepping
  • times.user, times.nice, times.sys, times.idle, times.irq (ミリ秒)
構文
cpus()
使用例
1
2
3
const os = require('os');
const list = os.cpus();
console.println(Array.isArray(list), list.length > 0);

cpuCounts()

CPU数を返します。

  • true: 論理コア数
  • false: 物理コア数
構文
cpuCounts(logical)
使用例
1
2
3
const os = require('os');
console.println(os.cpuCounts(true));
console.println(os.cpuCounts(false));

cpuPercent()

CPU使用率(%)の配列を返します。

  • intervalSec: サンプリング間隔(秒)。0の場合は即時の値
  • perCPU: trueの場合、コアごとの値の配列を返す
構文
cpuPercent(intervalSec, perCPU)
使用例
1
2
const os = require('os');
console.println(Array.isArray(os.cpuPercent(0, true)));

networkInterfaces()

ネットワークインターフェース情報をオブジェクトで返します。

戻り値の形式は以下のとおりです。

  • key: インターフェース名
  • value: アドレス情報の配列
    • address
    • family (IPv4/IPv6)
    • internal (boolean)
構文
networkInterfaces()
使用例
1
2
3
const os = require('os');
const ifaces = os.networkInterfaces();
console.println(typeof ifaces);

hostInfo()

ホストシステム情報のオブジェクトを返します。

主なフィールドは以下のとおりです。

  • hostname, uptime, bootTime, procs
  • os, platform, platformFamily, platformVersion
  • kernelVersion, kernelArch
  • virtualizationSystem, virtualizationRole, hostId
構文
hostInfo()
使用例
1
2
3
const os = require('os');
const info = os.hostInfo();
console.println(typeof info.hostname, typeof info.uptime);

userInfo()

現在のユーザー情報を返します。

返されるフィールド:

  • username, homedir, shell
  • uid, gid
構文
userInfo([options])
使用例
1
2
3
const os = require('os');
const user = os.userInfo();
console.println(user.username, user.homedir);

diskPartitions()

ディスクパーティション一覧を返します。

構文
diskPartitions([all])
使用例
1
2
3
const os = require('os');
const parts = os.diskPartitions();
console.println(Array.isArray(parts), parts.length >= 0);

diskUsage()

指定したパスのディスク使用量情報を返します。

通常は、totalusedfreeusedPercentフィールドを含みます。

構文
diskUsage(path)
使用例
1
2
3
const os = require('os');
const usage = os.diskUsage('.');
console.println(typeof usage.total, typeof usage.usedPercent);

diskIOCounters()

ディスクI/Oカウンターを返します。

  • namesが省略または空配列:すべてのデバイス
  • namesを指定:指定したデバイス
構文
diskIOCounters([names])
使用例
1
2
3
const os = require('os');
const counters = os.diskIOCounters();
console.println(typeof counters);

netProtoCounters()

ネットワークプロトコルのカウンターを返します。

構文
netProtoCounters([proto])
使用例
1
2
3
const os = require('os');
const counters = os.netProtoCounters();
console.println(typeof counters);

constants

OSに関する定数オブジェクトです。

現在は、以下の子オブジェクトを提供します。

  • os.constants.signals
  • os.constants.priority
使用例
1
2
3
4
const os = require('os');

console.println(typeof os.constants.signals.SIGINT);
console.println(typeof os.constants.priority.PRIORITY_NORMAL);

os.constants.signals

シグナル名と数値を提供する定数オブジェクトです。

これらの定数は、APIの互換性のため、正規化されたUnix形式のシグナル番号を使用します。 Windowsでは、すべての数値が個別のネイティブシグナル動作に1対1で対応するわけではありません。

たとえば、以下の項目を含みます。

リテラル数値
SIGHUP1
SIGINT2
SIGQUIT3
SIGABRT6
SIGKILL9
SIGUSR110
SIGSEGV11
SIGUSR212
SIGPIPE13
SIGALRM14
SIGTERM15

これらの値は、process.kill()に数値シグナルとして渡せます。

Windowsでは、SIGINTを特別に扱います。 JSHは、可能な限り割り込みに相当するコンソール制御イベントとして渡そうとします。 SIGTERMSIGQUITSIGKILLは、Windowsでは終了要求として動作します。

使用例
1
2
3
4
const os = require('os');
const process = require('process');

process.kill(12345, os.constants.signals.SIGTERM);

processのシグナルAPIとの関係

os.constants.signalsはシグナル番号を提供し、実際のシグナル処理と送信はprocessモジュールが行います。

  • シグナルの受信: process.on('SIGINT', handler)
  • シグナルの送信: process.kill(pid, os.constants.signals.SIGTERM)

process.on()は大文字と小文字を区別しませんが、シグナルイベント名にはSIGINTsigintのようにSIG接頭辞を含む正規名を使用する必要があります。 termのような接頭辞のない別名は、シグナルリスナー名として使用できません。

process.kill()は、正規名に加えてtermなどの別名を許可します。 os.constants.signalsは、正規化された定数名だけを提供します。

Windowsのprocess.kill(pid, os.constants.signals.SIGINT)はベストエフォートの動作であり、コンソールのルーティング制約により失敗する場合があります。

使用例
1
2
3
4
5
6
7
8
const os = require('os');
const process = require('process');

process.on('sigint', () => {
  console.println('caught');
});

process.kill(process.pid, os.constants.signals.SIGINT);

os.constants.priority

プロセスの優先度を表す定数オブジェクトです。

主なフィールド
定数説明
PRIORITY_LOW低い優先度
PRIORITY_BELOW_NORMAL通常より低い優先度
PRIORITY_NORMAL既定の優先度
PRIORITY_ABOVE_NORMAL通常より高い優先度
PRIORITY_HIGH高い優先度
PRIORITY_HIGHEST最高の優先度
使用例
1
2
3
const os = require('os');
console.println(os.constants.priority.PRIORITY_NORMAL);
console.println(os.constants.priority.PRIORITY_HIGH);
最終更新日