| src | ||
| .gitignore | ||
| LICENSE | ||
| osutil.nimble | ||
| README.md | ||
| temp.png | ||
nim-os-util
- This module is Linux-only.
atwrapper for Nim.cpulimitwrapper for Nim.ionicewrapper for Nim.xsetwrapper for Nim.
Use
>>> import osutil
>>> echo set_process_name("MyAwesomeNimApp")
>>> discard set_process_cpu_limit(50) # Max CPU usage 50%, 5%~100% is valid.
>>> echo set_process_ionice() # Max I/O usage class 3, 0~3 is valid.
>>> echo at("midnight", "/bin/free") # Free at Midnight, as Job 1. Poor mans AT wrapper for Nim.
>>> echo atq() # Lists all AT Jobs with number ID from queue.
>>> echo atrm(1) # Removes Job 1 from job queue.
>>> echo set_display_off() # Turn OFF monitor display.
Install
nimble install osutil
Requisites
cpulimit(Linux Package)ionice(Linux Package)xset(Linux Package)at(Linux Package)
Documentation
- If something is missing from Docs check the source code, its executable by itself.
set_process_name("SomeName")
Description: Set the current Process name in Nim, shows up on system monitor with custom name.
If you dont set the process name it will show up as "nim" or "main" or
the filename of the main executable.
For SysAdmins and DevOps is important to quickly identify a particular process on
the system monitor, that can be a GUI or a command like htop or glances.
Giving a proper name to your processes makes your software feel more professional.
Uses a low level call to libc.so. Only available on Linux.
Arguments:
nameA Name for your Process,stringtype, required.
Returns: None.
set_process_cpu_limit(limit)
Description: Set the current Process CPU Usage Limit cap from 5% to 100% on global percentage.
5 ~ 100 is valid. 100% makes almost no effect.
This is designed for background unimportant stuff, do not use on user-facing GUI!.
It starts a child sub-process that will cap the main process, when main process ends so does the sub-process.
With this you can trade speed for lower CPU resource usage, for example you can extend battery life on mobile devices by doing so.
Uses cpulimit Only available on Linux.
Arguments:
limitA Limit on CPU Usage on Percentage for your Process, global percentage for all CPU Cores,range[5..100]type, defaults to5which means 5% CPU max, required.
Returns: Process.
set_process_ionice(scheduling_class)
Description: Set the current Process I/O Usage Limit cap from "Idle" to "Real-Time".
Its similar to https://nim-lang.org/docs/posix.html#nice,cint but for I/O.
0 ~ 3 is valid. 2 makes no effect. This may delay I/O Operations to disk.
0 is none, 1 is RealTime, 2 is best-effort (Default), 3 is idle.
The default of all systems is 2, best-effort.
This is designed for background unimportant stuff, do not use on user-facing GUI!.
With this you can trade speed for lower I/O resource usage, for example you can extend battery life on mobile devices by doing so.
Uses ionice Only available on Linux.
Arguments:
scheduling_classA Limit on I/O Usage for your Process,range[0..3]type, defaults to3which meansidle,idlemeans use I/O when idle, required.
Returns: tuple[output: TaintedString, exitCode: int].
set_display_off()
Description: Turn Display Off using Nim, crossplatform, 1 proc, turns off monitor, designed for long running tasks on mobile devices.
Arguments: None.
Returns: tuple[output: TaintedString, exitCode: int].
