process

    Process: Main,

    Electron’s process object is extended from the Node.js process object. It adds the following events, properties, and methods:

    In sandboxed renderers the process object contains only a subset of the APIs:

    • crash()
    • hang()
    • getCreationTime()
    • getHeapStatistics()
    • getBlinkMemoryInfo()
    • getProcessMemoryInfo()
    • getSystemMemoryInfo()
    • getSystemVersion()
    • getCPUUsage()
    • getIOCounters()
    • uptime()
    • argv
    • execPath
    • env
    • pid
    • arch
    • platform
    • sandboxed
    • type
    • version
    • versions
    • mas
    • contextId

    Emitted when Electron has loaded its internal initialization script and is beginning to load the web page or the main script.

    process.defaultApp Readonly

    A Boolean. When app is started by being passed as parameter to the default app, this property is true in the main process, otherwise it is undefined.

    process.isMainFrame Readonly

    A Boolean, true when the current renderer context is the “main” renderer frame. If you want the ID of the current frame you should use webFrame.routingId.

    process.mas Readonly

    A Boolean. For Mac App Store build, this property is true, for other builds it is undefined.

    process.noAsar

    A Boolean that controls ASAR support inside your application. Setting this to true will disable the support for asar archives in Node’s built-in modules.

    process.noDeprecation

    A Boolean that controls whether or not deprecation warnings are printed to stderr. Setting this to true will silence deprecation warnings. This property is used instead of the --no-deprecation command line flag.

    process.resourcesPath Readonly

    A String representing the path to the resources directory.

    process.sandboxed Readonly

    A Boolean. When the renderer process is sandboxed, this property is true, otherwise it is undefined.

    process.contextIsolated Readonly

    A Boolean that indicates whether the current renderer context has contextIsolation enabled. It is undefined in the main process.

    A Boolean that controls whether or not deprecation warnings will be thrown as exceptions. Setting this to true will throw errors for deprecations. This property is used instead of the --throw-deprecation command line flag.

    process.traceDeprecation

    process.traceProcessWarnings

    A Boolean that controls whether or not process warnings printed to stderr include their stack trace. Setting this to true will print stack traces for process warnings (including deprecations). This property is instead of the --trace-warnings command line flag.

    process.type Readonly

    A String representing the current process’s type, can be:

    • browser - The main process
    • renderer - A renderer process
    • worker - In a web worker

    process.versions.chrome Readonly

    A representing Chrome’s version string.

    process.versions.electron Readonly

    A String representing Electron’s version string.

    process.windowsStore Readonly

    A Boolean. If the app is running as a Windows Store app (appx), this property is true, for otherwise it is undefined.

    process.contextId Readonly

    A String (optional) representing a globally unique ID of the current JavaScript context. Each frame has its own JavaScript context. When contextIsolation is enabled, the isolated world also has a separate JavaScript context. This property is only available in the renderer process.

    The process object has the following methods:

    process.crash()

    Causes the main thread of the current process crash.

    Returns Number | null - The number of milliseconds since epoch, or null if the information is unavailable

    Indicates the creation time of the application. The time is represented as number of milliseconds since epoch. It returns null if it is unable to get the process creation time.

    process.getCPUUsage()

    Returns CPUUsage

    process.getIOCounters() Windows Linux

    Returns IOCounters

    process.getHeapStatistics()

    Returns Object:

    • totalHeapSize Integer
    • totalHeapSizeExecutable Integer
    • totalPhysicalSize Integer
    • totalAvailableSize Integer
    • usedHeapSize Integer
    • heapSizeLimit Integer
    • mallocedMemory Integer
    • peakMallocedMemory Integer
    • doesZapGarbage Boolean

    process.getBlinkMemoryInfo()

    Returns Object:

    • allocated Integer - Size of all allocated objects in Kilobytes.
    • marked Integer - Size of all marked objects in Kilobytes.
    • total Integer - Total allocated space in Kilobytes.

    Returns an object with Blink memory information. It can be useful for debugging rendering / DOM related memory issues. Note that all values are reported in Kilobytes.

    process.getProcessMemoryInfo()

    Returns Promise<ProcessMemoryInfo> - Resolves with a ProcessMemoryInfo

    Returns an object giving memory usage statistics about the current process. Note that all statistics are reported in Kilobytes. This api should be called after app ready.

    Chromium does not provide residentSet value for macOS. This is because macOS performs in-memory compression of pages that haven’t been recently used. As a result the resident set size value is not what one would expect. private memory is more representative of the actual pre-compression memory usage of the process on macOS.

    process.getSystemMemoryInfo()

    Returns Object:

    • total Integer - The total amount of physical memory in Kilobytes available to the system.
    • free Integer - The total amount of memory not being used by applications or disk cache.
    • swapTotal Integer Windows Linux - The total amount of swap memory in Kilobytes available to the system.
    • swapFree Integer Windows Linux - The free amount of swap memory in Kilobytes available to the system.

    Returns an object giving memory usage statistics about the entire system. Note that all statistics are reported in Kilobytes.

    process.getSystemVersion()

    Returns String - The version of the host operating system.

    Example:

    Note: It returns the actual operating system version instead of kernel version on macOS unlike os.release().

    process.takeHeapSnapshot(filePath)

    Returns Boolean - Indicates whether the snapshot has been created successfully.

    Takes a V8 heap snapshot and saves it to filePath.

    Causes the main thread of the current process hang.

    process.setFdLimit(maxDescriptors) macOS Linux

    • maxDescriptors Integer