linux_stat 1.4.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +125 -68
- data/ext/fs_stat/fs_stat.c +10 -10
- data/ext/sysconf/extconf.rb +1 -1
- data/ext/sysconf/sysconf.c +29 -28
- data/ext/sysinfo/extconf.rb +11 -0
- data/ext/sysinfo/sysinfo.c +130 -0
- data/lib/linux_stat.rb +6 -3
- data/lib/linux_stat/memory.rb +13 -3
- data/lib/linux_stat/os.rb +34 -0
- data/lib/linux_stat/swap.rb +13 -2
- data/lib/linux_stat/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5da13d97b132a58afb5d56337e40f5a234cf129612a14886e931b5d01d2232d3
|
4
|
+
data.tar.gz: dee75b59d2a8e2ab3f55e19c7e117869149d2c318fbc12e6e8a39c3d9433d418
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1885696170e580ac960730d82dce2e73ca8b924211b3ee1d74c3cdde362fdaebf6fcc08a7fd49b444729186e65c68b0c15767c9baca050d0853b0460ae1ca989
|
7
|
+
data.tar.gz: 8ec56355b4774c830282ca5ecb23dc3318ccc8fabd748a20af4bb0535bec6e3f0da9a3d0232ce09f58e1bf43cb9cc5917e970633dc19cc7c4b0cc9ed786df492
|
data/README.md
CHANGED
@@ -16,6 +16,10 @@ Languages Used:
|
|
16
16
|
|
17
17
|
---
|
18
18
|
|
19
|
+
## Requirements:
|
20
|
+
|
21
|
+
Any Linux distribution with Kernel 3.14+.
|
22
|
+
|
19
23
|
## Dependencies:
|
20
24
|
+ You need to have the C compiler installed to be able to compile the C extensions.
|
21
25
|
On Arch Linux:
|
@@ -89,7 +93,6 @@ It's generated by linuxstat.rb command, which is available after the installatio
|
|
89
93
|
|
90
94
|
For ease of use, LinuxStat is also assigned to the LS constant.
|
91
95
|
|
92
|
-
### LinuxStat::BIOS
|
93
96
|
### LinuxStat::BIOS
|
94
97
|
```
|
95
98
|
# File: bios.rb | Line: 58
|
@@ -184,7 +187,7 @@ LinuxStat::Battery.technology()
|
|
184
187
|
# File: battery.rb | Line: 162
|
185
188
|
# Definition: def voltage_now
|
186
189
|
LinuxStat::Battery.voltage_now()
|
187
|
-
=> 12.
|
190
|
+
=> 12.583
|
188
191
|
|
189
192
|
```
|
190
193
|
|
@@ -208,7 +211,7 @@ LinuxStat::CPU.count_online()
|
|
208
211
|
# File: cpu.rb | Line: 199
|
209
212
|
# Definition: def cur_freq
|
210
213
|
LinuxStat::CPU.cur_freq()
|
211
|
-
=> {"cpu0"=>
|
214
|
+
=> {"cpu0"=>2000010, "cpu1"=>1999584, "cpu2"=>2000137, "cpu3"=>2000033}
|
212
215
|
|
213
216
|
# File: cpu.rb | Line: 267
|
214
217
|
# Definition: def governor
|
@@ -243,29 +246,29 @@ LinuxStat::CPU.online()
|
|
243
246
|
# File: cpu.rb | Line: 25
|
244
247
|
# Definition: def stat(sleep = ticks_to_ms_t5)
|
245
248
|
LinuxStat::CPU.stat(sleep)
|
246
|
-
=> {0=>
|
249
|
+
=> {0=>5.26, 1=>16.67, 2=>16.67, 3=>0.0, 4=>20.0}
|
247
250
|
|
248
251
|
# File: cpu.rb | Line: 65
|
249
252
|
# Definition: def total_usage(sleep = ticks_to_ms_t5)
|
250
253
|
LinuxStat::CPU.total_usage(sleep)
|
251
|
-
=>
|
254
|
+
=> 14.29
|
252
255
|
|
253
256
|
# File: cpu.rb | Line: 65
|
254
257
|
# Definition: def total_usage(sleep = ticks_to_ms_t5)
|
255
258
|
LinuxStat::CPU.usage(sleep)
|
256
|
-
=>
|
259
|
+
=> 10.0
|
257
260
|
|
258
261
|
# File: cpu.rb | Line: 25
|
259
262
|
# Definition: def stat(sleep = ticks_to_ms_t5)
|
260
263
|
LinuxStat::CPU.usages(sleep)
|
261
|
-
=> {0=>
|
264
|
+
=> {0=>5.26, 1=>0.0, 2=>0.0, 3=>20.0, 4=>0.0}
|
262
265
|
|
263
266
|
```
|
264
267
|
|
265
268
|
### LinuxStat::FS
|
266
269
|
```
|
267
270
|
LinuxStat::FS.stat(arg = "/")
|
268
|
-
=> {:block_size=>4096, :fragment_size=>4096, :blocks=>29292283, :block_free=>
|
271
|
+
=> {:block_size=>4096, :fragment_size=>4096, :blocks=>29292283, :block_free=>6091459, :block_avail_unpriv=>6091459, :inodes=>50505784, :free_inodes=>48759601, :filesystem_id=>2050, :mount_flags=>1024, :max_filename_length=>255}
|
269
272
|
|
270
273
|
```
|
271
274
|
|
@@ -274,22 +277,22 @@ LinuxStat::FS.stat(arg = "/")
|
|
274
277
|
# File: filesystem.rb | Line: 94
|
275
278
|
# Definition: def available(fs = ?..freeze)
|
276
279
|
LinuxStat::Filesystem.available(fs)
|
277
|
-
=>
|
280
|
+
=> 24950616064
|
278
281
|
|
279
282
|
# File: filesystem.rb | Line: 60
|
280
283
|
# Definition: def free(fs = ?..freeze)
|
281
284
|
LinuxStat::Filesystem.free(fs)
|
282
|
-
=>
|
285
|
+
=> 24950616064
|
283
286
|
|
284
287
|
# File: filesystem.rb | Line: 21
|
285
288
|
# Definition: def stat(fs = ?..freeze)
|
286
289
|
LinuxStat::Filesystem.stat(fs)
|
287
|
-
=> {:total=>119981191168, :free=>
|
290
|
+
=> {:total=>119981191168, :free=>24950616064, :used=>95030575104}
|
288
291
|
|
289
292
|
# File: filesystem.rb | Line: 110
|
290
293
|
# Definition: def stat_raw(fs = ?..freeze)
|
291
294
|
LinuxStat::Filesystem.stat_raw(fs)
|
292
|
-
=> {:block_size=>4096, :fragment_size=>4096, :blocks=>29292283, :block_free=>
|
295
|
+
=> {:block_size=>4096, :fragment_size=>4096, :blocks=>29292283, :block_free=>6091459, :block_avail_unpriv=>6091459, :inodes=>50505784, :free_inodes=>48759601, :filesystem_id=>2050, :mount_flags=>1024, :max_filename_length=>255}
|
293
296
|
|
294
297
|
# File: filesystem.rb | Line: 41
|
295
298
|
# Definition: def total(fs = ?..freeze)
|
@@ -299,7 +302,7 @@ LinuxStat::Filesystem.total(fs)
|
|
299
302
|
# File: filesystem.rb | Line: 75
|
300
303
|
# Definition: def used(fs = ?..freeze)
|
301
304
|
LinuxStat::Filesystem.used(fs)
|
302
|
-
=>
|
305
|
+
=> 95030575104
|
303
306
|
|
304
307
|
```
|
305
308
|
|
@@ -359,35 +362,40 @@ LinuxStat::Kernel.version()
|
|
359
362
|
|
360
363
|
### LinuxStat::Memory
|
361
364
|
```
|
362
|
-
# File: memory.rb | Line:
|
365
|
+
# File: memory.rb | Line: 62
|
363
366
|
# Definition: def available
|
364
367
|
LinuxStat::Memory.available()
|
365
|
-
=>
|
368
|
+
=> 422660
|
366
369
|
|
367
|
-
# File: memory.rb | Line:
|
370
|
+
# File: memory.rb | Line: 52
|
371
|
+
# Definition: def free
|
372
|
+
LinuxStat::Memory.free()
|
373
|
+
=> 237884
|
374
|
+
|
375
|
+
# File: memory.rb | Line: 93
|
368
376
|
# Definition: def percent_available
|
369
377
|
LinuxStat::Memory.percent_available()
|
370
|
-
=>
|
378
|
+
=> 11.02
|
371
379
|
|
372
|
-
# File: memory.rb | Line:
|
380
|
+
# File: memory.rb | Line: 82
|
373
381
|
# Definition: def percent_used
|
374
382
|
LinuxStat::Memory.percent_used()
|
375
|
-
=>
|
383
|
+
=> 88.98
|
376
384
|
|
377
385
|
# File: memory.rb | Line: 13
|
378
386
|
# Definition: def stat
|
379
387
|
LinuxStat::Memory.stat()
|
380
|
-
=> {:total=>
|
388
|
+
=> {:total=>3836236, :used=>3413576, :available=>422660, :percent_used=>88.98, :percent_available=>11.02}
|
381
389
|
|
382
390
|
# File: memory.rb | Line: 42
|
383
391
|
# Definition: def total
|
384
392
|
LinuxStat::Memory.total()
|
385
|
-
=>
|
393
|
+
=> 3836236
|
386
394
|
|
387
|
-
# File: memory.rb | Line:
|
395
|
+
# File: memory.rb | Line: 72
|
388
396
|
# Definition: def used
|
389
397
|
LinuxStat::Memory.used()
|
390
|
-
=>
|
398
|
+
=> 3413576
|
391
399
|
|
392
400
|
```
|
393
401
|
|
@@ -396,7 +404,7 @@ LinuxStat::Memory.used()
|
|
396
404
|
# File: mounts.rb | Line: 181
|
397
405
|
# Definition: def device_stat(dev = root)
|
398
406
|
LinuxStat::Mounts.device_stat(dev)
|
399
|
-
=> {:mountpoint=>"/", :total=>119981191168, :free=>
|
407
|
+
=> {:mountpoint=>"/", :total=>119981191168, :free=>24950616064, :available=>24950616064, :used=>95030575104, :percent_used=>79.2, :percent_free=>20.8, :percent_available=>20.8}
|
400
408
|
|
401
409
|
# File: mounts.rb | Line: 139
|
402
410
|
# Definition: def devices_stat
|
@@ -406,17 +414,17 @@ LinuxStat::Mounts.devices_stat()
|
|
406
414
|
# File: mounts.rb | Line: 13
|
407
415
|
# Definition: def list
|
408
416
|
LinuxStat::Mounts.list()
|
409
|
-
=> ["proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0", "sys /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0", "dev /dev devtmpfs rw,nosuid,relatime,size=
|
417
|
+
=> ["proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0", "sys /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0", "dev /dev devtmpfs rw,nosuid,relatime,size=1892892k,nr_inodes=473223,mode=755 0 0", "run /run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0", "...
|
410
418
|
|
411
419
|
# File: mounts.rb | Line: 22
|
412
420
|
# Definition: def list_devices
|
413
421
|
LinuxStat::Mounts.list_devices()
|
414
|
-
=> ["proc", "sys", "dev", "run", "/dev/sda2", "securityfs", "tmpfs", "devpts", "tmpfs", "cgroup2", "cgroup", "pstore", "none", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "systemd-1", "
|
422
|
+
=> ["proc", "sys", "dev", "run", "/dev/sda2", "securityfs", "tmpfs", "devpts", "tmpfs", "cgroup2", "cgroup", "pstore", "none", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "cgroup", "systemd-1", "mqu...
|
415
423
|
|
416
424
|
# File: mounts.rb | Line: 111
|
417
425
|
# Definition: def list_devices_mount_point
|
418
426
|
LinuxStat::Mounts.list_devices_mount_point()
|
419
|
-
=> {"proc"=>"/proc", "sys"=>"/sys", "dev"=>"/dev", "run"=>"/run", "/dev/sda2"=>"/", "securityfs"=>"/sys/kernel/security", "tmpfs"=>"/run/user/1000", "devpts"=>"/dev/pts", "cgroup2"=>"/sys/fs/cgroup/unified", "cgroup"=>"/sys/fs/cgroup/
|
427
|
+
=> {"proc"=>"/proc", "sys"=>"/sys", "dev"=>"/dev", "run"=>"/run", "/dev/sda2"=>"/", "securityfs"=>"/sys/kernel/security", "tmpfs"=>"/run/user/1000", "devpts"=>"/dev/pts", "cgroup2"=>"/sys/fs/cgroup/unified", "cgroup"=>"/sys/fs/cgroup/pids", "pstore"=>"/s...
|
420
428
|
|
421
429
|
# File: mounts.rb | Line: 82
|
422
430
|
# Definition: def mount_point(dev = root)
|
@@ -441,7 +449,7 @@ LinuxStat::Mounts.root_mount_options()
|
|
441
449
|
# File: mounts.rb | Line: 58
|
442
450
|
# Definition: def tmpfs
|
443
451
|
LinuxStat::Mounts.tmpfs()
|
444
|
-
=> {"/dev/shm"=>"tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0", "/sys/fs/cgroup"=>"tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755 0 0", "/
|
452
|
+
=> {"/dev/shm"=>"tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0", "/sys/fs/cgroup"=>"tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755 0 0", "/cache"=>"tmpfs /cache tmpfs rw,nosuid,nodev,relatime,size=2097152k 0 0", "/ramdisk...
|
445
453
|
|
446
454
|
```
|
447
455
|
|
@@ -455,22 +463,22 @@ LinuxStat::Net.current_usage(interval)
|
|
455
463
|
# File: net.rb | Line: 12
|
456
464
|
# Definition: def ipv4_private
|
457
465
|
LinuxStat::Net.ipv4_private()
|
458
|
-
=> "192.168.
|
466
|
+
=> "192.168.0.103"
|
459
467
|
|
460
468
|
# File: net.rb | Line: 27
|
461
469
|
# Definition: def total_bytes
|
462
470
|
LinuxStat::Net.total_bytes()
|
463
|
-
=> {:received=>
|
471
|
+
=> {:received=>719043592, :transmitted=>70236574}
|
464
472
|
|
465
473
|
# File: net.rb | Line: 45
|
466
474
|
# Definition: def total_bytes_received
|
467
475
|
LinuxStat::Net.total_bytes_received()
|
468
|
-
=>
|
476
|
+
=> 719043592
|
469
477
|
|
470
478
|
# File: net.rb | Line: 58
|
471
479
|
# Definition: def total_bytes_transmitted
|
472
480
|
LinuxStat::Net.total_bytes_transmitted()
|
473
|
-
=>
|
481
|
+
=> 70236574
|
474
482
|
|
475
483
|
# File: net.rb | Line: 86
|
476
484
|
# Definition: def usage(interval = 0.1)
|
@@ -501,6 +509,11 @@ LinuxStat::OS.distribution()
|
|
501
509
|
LinuxStat::OS.hostname()
|
502
510
|
=> "archlinux"
|
503
511
|
|
512
|
+
# File: os.rb | Line: 185
|
513
|
+
# Definition: def loadavg
|
514
|
+
LinuxStat::OS.loadavg()
|
515
|
+
=> {1=>0.56884765625, 5=>0.69482421875, 15=>0.9892578125}
|
516
|
+
|
504
517
|
# File: os.rb | Line: 35
|
505
518
|
# Definition: def lsb_release
|
506
519
|
LinuxStat::OS.lsb_release()
|
@@ -524,7 +537,12 @@ LinuxStat::OS.os_release()
|
|
524
537
|
# File: os.rb | Line: 144
|
525
538
|
# Definition: def uptime
|
526
539
|
LinuxStat::OS.uptime()
|
527
|
-
=> {:hour=>
|
540
|
+
=> {:hour=>11, :minute=>17, :second=>5.68}
|
541
|
+
|
542
|
+
# File: os.rb | Line: 168
|
543
|
+
# Definition: def uptime_i
|
544
|
+
LinuxStat::OS.uptime_i()
|
545
|
+
=> 40626
|
528
546
|
|
529
547
|
# File: os.rb | Line: 84
|
530
548
|
# Definition: def version
|
@@ -576,23 +594,23 @@ LinuxStat::PCI.initialize_hwdata()
|
|
576
594
|
```
|
577
595
|
# File: prettify_bytes.rb | Line: 49
|
578
596
|
# Definition: def convert_binary(n, precision: 2)
|
579
|
-
LinuxStat::PrettifyBytes.convert_binary(n =
|
580
|
-
=> "
|
597
|
+
LinuxStat::PrettifyBytes.convert_binary(n = 137669164863821, precision:)
|
598
|
+
=> "125.21 tebibytes"
|
581
599
|
|
582
600
|
# File: prettify_bytes.rb | Line: 26
|
583
601
|
# Definition: def convert_decimal(n, precision: 2)
|
584
|
-
LinuxStat::PrettifyBytes.convert_decimal(n =
|
585
|
-
=> "
|
602
|
+
LinuxStat::PrettifyBytes.convert_decimal(n = 854792232966738, precision:)
|
603
|
+
=> "854.79 terabytes"
|
586
604
|
|
587
605
|
# File: prettify_bytes.rb | Line: 97
|
588
606
|
# Definition: def convert_short_binary(n, precision: 2)
|
589
|
-
LinuxStat::PrettifyBytes.convert_short_binary(n =
|
590
|
-
=> "
|
607
|
+
LinuxStat::PrettifyBytes.convert_short_binary(n = 502144293693829, precision:)
|
608
|
+
=> "456.70 TiB"
|
591
609
|
|
592
610
|
# File: prettify_bytes.rb | Line: 72
|
593
611
|
# Definition: def convert_short_decimal(n, precision: 2)
|
594
|
-
LinuxStat::PrettifyBytes.convert_short_decimal(n =
|
595
|
-
=> "
|
612
|
+
LinuxStat::PrettifyBytes.convert_short_decimal(n = 489879177525276, precision:)
|
613
|
+
=> "489.88 TB"
|
596
614
|
|
597
615
|
```
|
598
616
|
|
@@ -611,12 +629,12 @@ LinuxStat::Process.count()
|
|
611
629
|
# File: process.rb | Line: 124
|
612
630
|
# Definition: def idle
|
613
631
|
LinuxStat::Process.idle()
|
614
|
-
=> [3, 4, 6, 9, 12, 23, 30, 37, 39, 49, 102, 103, 104, 106, 107, 108, 109, 110, 117, 118,
|
632
|
+
=> [3, 4, 6, 9, 12, 23, 30, 37, 39, 49, 102, 103, 104, 106, 107, 108, 109, 110, 117, 118, 120, 122, 131, 134, 140, 164, 166, 170, 171, 174, 176, 181, 182, 183, 184, 185, 186, 187, 189, 231, 234, 302, 417, 425, 13585, 20484, 20485, 20486, 20487, 20488, 20...
|
615
633
|
|
616
634
|
# File: process.rb | Line: 11
|
617
635
|
# Definition: def list
|
618
636
|
LinuxStat::Process.list()
|
619
|
-
=> [1, 2, 3, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, 51, 52, 102, 103, 104, 106, 107, 108, 109, 110,
|
637
|
+
=> [1, 2, 3, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, 51, 52, 102, 103, 104, 106, 107, 108, 109, 110, 112, 114, 115, 117, 118, 120, 122, 131, 134,...
|
620
638
|
|
621
639
|
# File: process.rb | Line: 36
|
622
640
|
# Definition: def names
|
@@ -626,12 +644,12 @@ LinuxStat::Process.names()
|
|
626
644
|
# File: process.rb | Line: 150
|
627
645
|
# Definition: def running
|
628
646
|
LinuxStat::Process.running()
|
629
|
-
=> [
|
647
|
+
=> [37551]
|
630
648
|
|
631
649
|
# File: process.rb | Line: 111
|
632
650
|
# Definition: def sleeping
|
633
651
|
LinuxStat::Process.sleeping()
|
634
|
-
=> [1, 2, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 38, 40, 41, 42, 46, 47, 48, 50, 51, 52,
|
652
|
+
=> [1, 2, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 38, 40, 41, 42, 46, 47, 48, 50, 51, 52, 112, 114, 115, 163, 165, 190, 218, 233, 235, 342, 380, 382, 384, 385, 428, 429, 430, 432, 443, 447, 454, 483, 501, 504,...
|
635
653
|
|
636
654
|
# File: process.rb | Line: 163
|
637
655
|
# Definition: def stopped
|
@@ -670,12 +688,12 @@ LinuxStat::ProcessInfo.count_cpu(pid)
|
|
670
688
|
# File: process_info.rb | Line: 284
|
671
689
|
# Definition: def cpu_stat(pid: $$, sleep: ticks_to_ms_t5)
|
672
690
|
LinuxStat::ProcessInfo.cpu_stat(pid:, sleep:)
|
673
|
-
=> {:cpu_usage=>0.0, :threads=>1, :last_executed_cpu=>
|
691
|
+
=> {:cpu_usage=>0.0, :threads=>1, :last_executed_cpu=>1}
|
674
692
|
|
675
693
|
# File: process_info.rb | Line: 350
|
676
694
|
# Definition: def cpu_usage(pid: $$, sleep: ticks_to_ms_t5)
|
677
695
|
LinuxStat::ProcessInfo.cpu_usage(pid:, sleep:)
|
678
|
-
=>
|
696
|
+
=> 0.0
|
679
697
|
|
680
698
|
# File: process_info.rb | Line: 525
|
681
699
|
# Definition: def gid(pid = $$)
|
@@ -685,12 +703,12 @@ LinuxStat::ProcessInfo.gid(pid)
|
|
685
703
|
# File: process_info.rb | Line: 487
|
686
704
|
# Definition: def last_executed_cpu(pid = $$)
|
687
705
|
LinuxStat::ProcessInfo.last_executed_cpu(pid)
|
688
|
-
=>
|
706
|
+
=> 1
|
689
707
|
|
690
708
|
# File: process_info.rb | Line: 151
|
691
709
|
# Definition: def mem_stat(pid = $$)
|
692
710
|
LinuxStat::ProcessInfo.mem_stat(pid)
|
693
|
-
=> {:memory=>24842.24, :virtual_memory=>
|
711
|
+
=> {:memory=>24842.24, :virtual_memory=>96256.0, :resident_memory=>30859.264}
|
694
712
|
|
695
713
|
# File: process_info.rb | Line: 184
|
696
714
|
# Definition: def memory(pid = $$)
|
@@ -720,22 +738,22 @@ LinuxStat::ProcessInfo.process_name(pid)
|
|
720
738
|
# File: process_info.rb | Line: 234
|
721
739
|
# Definition: def resident_memory(pid = $$)
|
722
740
|
LinuxStat::ProcessInfo.resident_memory(pid)
|
723
|
-
=>
|
741
|
+
=> 30859.264
|
724
742
|
|
725
743
|
# File: process_info.rb | Line: 621
|
726
744
|
# Definition: def running_time(pid = $$)
|
727
745
|
LinuxStat::ProcessInfo.running_time(pid)
|
728
|
-
=> 1.
|
746
|
+
=> 1.08
|
729
747
|
|
730
748
|
# File: process_info.rb | Line: 602
|
731
749
|
# Definition: def start_time(pid = $$)
|
732
750
|
LinuxStat::ProcessInfo.start_time(pid)
|
733
|
-
=> 2021-01-
|
751
|
+
=> 2021-01-22 21:42:20 +0530
|
734
752
|
|
735
753
|
# File: process_info.rb | Line: 568
|
736
754
|
# Definition: def start_time_epoch(pid = $$)
|
737
755
|
LinuxStat::ProcessInfo.start_time_epoch(pid)
|
738
|
-
=>
|
756
|
+
=> 1611331940
|
739
757
|
|
740
758
|
# File: process_info.rb | Line: 653
|
741
759
|
# Definition: def state(pid = $$)
|
@@ -755,7 +773,7 @@ LinuxStat::ProcessInfo.threads(pid)
|
|
755
773
|
# File: process_info.rb | Line: 30
|
756
774
|
# Definition: def total_io(pid = $$)
|
757
775
|
LinuxStat::ProcessInfo.total_io(pid)
|
758
|
-
=> {:read_bytes=>
|
776
|
+
=> {:read_bytes=>1302528, :write_bytes=>0}
|
759
777
|
|
760
778
|
# File: process_info.rb | Line: 501
|
761
779
|
# Definition: def uid(pid = $$)
|
@@ -765,7 +783,7 @@ LinuxStat::ProcessInfo.uid(pid)
|
|
765
783
|
# File: process_info.rb | Line: 209
|
766
784
|
# Definition: def virtual_memory(pid = $$)
|
767
785
|
LinuxStat::ProcessInfo.virtual_memory(pid)
|
768
|
-
=>
|
786
|
+
=> 96256.0
|
769
787
|
|
770
788
|
```
|
771
789
|
|
@@ -776,40 +794,45 @@ LinuxStat::ProcessInfo.virtual_memory(pid)
|
|
776
794
|
LinuxStat::Swap.any?()
|
777
795
|
=> true
|
778
796
|
|
779
|
-
# File: swap.rb | Line:
|
797
|
+
# File: swap.rb | Line: 81
|
780
798
|
# Definition: def available
|
781
799
|
LinuxStat::Swap.available()
|
782
|
-
=>
|
800
|
+
=> 2437940
|
801
|
+
|
802
|
+
# File: swap.rb | Line: 70
|
803
|
+
# Definition: def free
|
804
|
+
LinuxStat::Swap.free()
|
805
|
+
=> 2437940
|
783
806
|
|
784
807
|
# File: swap.rb | Line: 10
|
785
808
|
# Definition: def list
|
786
809
|
LinuxStat::Swap.list()
|
787
|
-
=> {"/dev/zram0"=>[:partition, 4194300,
|
810
|
+
=> {"/dev/zram0"=>[:partition, 4194300, 1756360, -2]}
|
788
811
|
|
789
|
-
# File: swap.rb | Line:
|
812
|
+
# File: swap.rb | Line: 116
|
790
813
|
# Definition: def percent_available
|
791
814
|
LinuxStat::Swap.percent_available()
|
792
|
-
=>
|
815
|
+
=> 58.13
|
793
816
|
|
794
|
-
# File: swap.rb | Line:
|
817
|
+
# File: swap.rb | Line: 102
|
795
818
|
# Definition: def percent_used
|
796
819
|
LinuxStat::Swap.percent_used()
|
797
|
-
=>
|
820
|
+
=> 41.87
|
798
821
|
|
799
822
|
# File: swap.rb | Line: 34
|
800
823
|
# Definition: def stat
|
801
824
|
LinuxStat::Swap.stat()
|
802
|
-
=> {:total=>4194300, :used=>
|
825
|
+
=> {:total=>4194300, :used=>1756360, :available=>2437940, :percent_used=>41.87, :percent_available=>58.13}
|
803
826
|
|
804
827
|
# File: swap.rb | Line: 59
|
805
828
|
# Definition: def total
|
806
829
|
LinuxStat::Swap.total()
|
807
830
|
=> 4194300
|
808
831
|
|
809
|
-
# File: swap.rb | Line:
|
832
|
+
# File: swap.rb | Line: 93
|
810
833
|
# Definition: def used
|
811
834
|
LinuxStat::Swap.used()
|
812
|
-
=>
|
835
|
+
=> 1756360
|
813
836
|
|
814
837
|
```
|
815
838
|
|
@@ -874,6 +897,40 @@ LinuxStat::Sysconf.tty_name_max()
|
|
874
897
|
|
875
898
|
```
|
876
899
|
|
900
|
+
### LinuxStat::Sysinfo
|
901
|
+
```
|
902
|
+
LinuxStat::Sysinfo.bufferram()
|
903
|
+
=> 4096
|
904
|
+
|
905
|
+
LinuxStat::Sysinfo.freehigh()
|
906
|
+
=> 0
|
907
|
+
|
908
|
+
LinuxStat::Sysinfo.freeram()
|
909
|
+
=> 223875072
|
910
|
+
|
911
|
+
LinuxStat::Sysinfo.freeswap()
|
912
|
+
=> 2496450560
|
913
|
+
|
914
|
+
LinuxStat::Sysinfo.loads()
|
915
|
+
=> [0.56884765625, 0.69482421875, 0.9892578125]
|
916
|
+
|
917
|
+
LinuxStat::Sysinfo.sharedram()
|
918
|
+
=> 834801664
|
919
|
+
|
920
|
+
LinuxStat::Sysinfo.totalhigh()
|
921
|
+
=> 0
|
922
|
+
|
923
|
+
LinuxStat::Sysinfo.totalram()
|
924
|
+
=> 3928305664
|
925
|
+
|
926
|
+
LinuxStat::Sysinfo.totalswap()
|
927
|
+
=> 4294963200
|
928
|
+
|
929
|
+
LinuxStat::Sysinfo.uptime()
|
930
|
+
=> 40627
|
931
|
+
|
932
|
+
```
|
933
|
+
|
877
934
|
### LinuxStat::Thermal
|
878
935
|
```
|
879
936
|
# File: thermal.rb | Line: 59
|
@@ -889,12 +946,12 @@ LinuxStat::Thermal.count_sensors()
|
|
889
946
|
# File: thermal.rb | Line: 41
|
890
947
|
# Definition: def fans
|
891
948
|
LinuxStat::Thermal.fans()
|
892
|
-
=> [{:path=>"/sys/class/hwmon/hwmon4", :name=>"dell_smm", :label=>"Processor Fan", :rpm=>
|
949
|
+
=> [{:path=>"/sys/class/hwmon/hwmon4", :name=>"dell_smm", :label=>"Processor Fan", :rpm=>0}]
|
893
950
|
|
894
951
|
# File: thermal.rb | Line: 23
|
895
952
|
# Definition: def temperatures
|
896
953
|
LinuxStat::Thermal.temperatures()
|
897
|
-
=> [{:path=>"/sys/class/hwmon/hwmon4", :name=>"dell_smm", :label=>"SODIMM", :temperature=>
|
954
|
+
=> [{:path=>"/sys/class/hwmon/hwmon4", :name=>"dell_smm", :label=>"SODIMM", :temperature=>36.0}, {:path=>"/sys/class/hwmon/hwmon4", :name=>"dell_smm", :label=>"CPU", :temperature=>46.0}, {:path=>"/sys/class/hwmon/hwmon4", :name=>"dell_smm", :label=>"Ambi...
|
898
955
|
|
899
956
|
```
|
900
957
|
|
@@ -913,7 +970,7 @@ LinuxStat::USB.count_devices()
|
|
913
970
|
# File: usb.rb | Line: 49
|
914
971
|
# Definition: def devices_stat(hwdata: true)
|
915
972
|
LinuxStat::USB.devices_stat(hwdata:)
|
916
|
-
=> [{:path=>"/sys/bus/usb/devices/1-1.2/", :id=>"04d9:1203", :vendor_id=>"04d9", :product_id=>"1203", :bus_num=>1, :dev_num=>
|
973
|
+
=> [{:path=>"/sys/bus/usb/devices/1-1.2/", :id=>"04d9:1203", :vendor_id=>"04d9", :product_id=>"1203", :bus_num=>1, :dev_num=>11, :hwdata=>{:vendor=>"Holtek Semiconductor, Inc.", :product=>"Keyboard"}, :authorized=>true, :b_max_power=>"100mA", :b_max_pack...
|
917
974
|
|
918
975
|
# File: usb.rb | Line: 179
|
919
976
|
# Definition: def hwdata_file
|
data/ext/fs_stat/fs_stat.c
CHANGED
@@ -18,16 +18,16 @@ static VALUE statfs(VALUE obj, VALUE dir) {
|
|
18
18
|
|
19
19
|
if(statvfs(d, &buf) < 0) return hash ;
|
20
20
|
|
21
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("block_size")), INT2FIX(buf.f_bsize)) ;
|
22
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("fragment_size")),
|
23
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("blocks")),
|
24
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("block_free")),
|
25
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("block_avail_unpriv")),
|
26
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("inodes")),
|
27
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("free_inodes")),
|
28
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("filesystem_id")),
|
29
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("mount_flags")),
|
30
|
-
rb_hash_aset(hash, ID2SYM(rb_intern("max_filename_length")),
|
21
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("block_size")), INT2FIX((unsigned int)buf.f_bsize)) ;
|
22
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("fragment_size")), ULL2NUM((unsigned long long)buf.f_frsize)) ;
|
23
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("blocks")), ULL2NUM((unsigned long long)buf.f_blocks)) ;
|
24
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("block_free")), ULL2NUM((unsigned long long)buf.f_bfree)) ;
|
25
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("block_avail_unpriv")), ULL2NUM((unsigned long long)buf.f_bavail)) ;
|
26
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("inodes")), ULL2NUM((unsigned long long)buf.f_files)) ;
|
27
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("free_inodes")), ULL2NUM((unsigned long long)buf.f_ffree)) ;
|
28
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("filesystem_id")), ULL2NUM((unsigned long long)buf.f_fsid)) ;
|
29
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("mount_flags")), ULL2NUM((unsigned long long)buf.f_flag)) ;
|
30
|
+
rb_hash_aset(hash, ID2SYM(rb_intern("max_filename_length")), ULL2NUM((unsigned long long)buf.f_namemax)) ;
|
31
31
|
|
32
32
|
return hash ;
|
33
33
|
}
|
data/ext/sysconf/extconf.rb
CHANGED
data/ext/sysconf/sysconf.c
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#include <unistd.h>
|
2
|
+
#include <inttypes.h>
|
2
3
|
#include "ruby.h"
|
3
4
|
|
4
5
|
#if defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER)
|
@@ -12,94 +13,94 @@
|
|
12
13
|
#endif
|
13
14
|
|
14
15
|
static VALUE getTick(VALUE obj) {
|
15
|
-
|
16
|
+
int16_t val = sysconf(_SC_CLK_TCK) ;
|
16
17
|
if (val < 0) return Qnil ;
|
17
18
|
|
18
19
|
return INT2FIX(val) ;
|
19
20
|
}
|
20
21
|
|
21
22
|
static VALUE getChildMax(VALUE obj) {
|
22
|
-
|
23
|
+
int64_t val = sysconf(_SC_CHILD_MAX) ;
|
23
24
|
if (val < 0) return Qnil ;
|
24
25
|
|
25
|
-
return
|
26
|
+
return INT2NUM(val) ;
|
26
27
|
}
|
27
28
|
|
28
29
|
static VALUE getHostnameMax(VALUE obj) {
|
29
|
-
|
30
|
+
int32_t val = sysconf(_SC_HOST_NAME_MAX) ;
|
30
31
|
if (val < 0) return Qnil ;
|
31
32
|
|
32
|
-
return
|
33
|
+
return INT2NUM(val) ;
|
33
34
|
}
|
34
35
|
|
35
36
|
static VALUE getLoginNameMax(VALUE obj) {
|
36
|
-
|
37
|
+
int32_t val = sysconf(_SC_LOGIN_NAME_MAX) ;
|
37
38
|
if (val < 0) return Qnil ;
|
38
39
|
|
39
|
-
return
|
40
|
+
return INT2NUM(val) ;
|
40
41
|
}
|
41
42
|
|
42
43
|
static VALUE getOpenMax(VALUE obj) {
|
43
|
-
|
44
|
+
int64_t val = sysconf(_SC_OPEN_MAX) ;
|
44
45
|
if (val < 0) return Qnil ;
|
45
46
|
|
46
|
-
return
|
47
|
+
return INT2NUM(val) ;
|
47
48
|
}
|
48
49
|
|
49
50
|
static VALUE getPageSize(VALUE obj) {
|
50
|
-
|
51
|
+
int32_t val = sysconf(_SC_PAGESIZE) ;
|
51
52
|
if (val < 0) return Qnil ;
|
52
53
|
|
53
|
-
return
|
54
|
+
return INT2NUM(val) ;
|
54
55
|
}
|
55
56
|
|
56
57
|
static VALUE getStreamMax(VALUE obj) {
|
57
|
-
|
58
|
+
int64_t val = sysconf(_SC_STREAM_MAX) ;
|
58
59
|
if (val < 0) return Qnil ;
|
59
60
|
|
60
|
-
return
|
61
|
+
return INT2NUM(val) ;
|
61
62
|
}
|
62
63
|
|
63
64
|
static VALUE getTTYNameMax(VALUE obj) {
|
64
|
-
|
65
|
+
int32_t val = sysconf(_SC_TTY_NAME_MAX) ;
|
65
66
|
if (val < 0) return Qnil ;
|
66
67
|
|
67
|
-
return
|
68
|
+
return INT2NUM(val) ;
|
68
69
|
}
|
69
70
|
|
70
71
|
static VALUE getPosixVersion(VALUE obj) {
|
71
|
-
|
72
|
+
int32_t val = sysconf(_SC_VERSION) ;
|
72
73
|
if (val < 0) return Qnil ;
|
73
74
|
|
74
|
-
return
|
75
|
+
return INT2NUM(val) ;
|
75
76
|
}
|
76
77
|
|
77
78
|
static VALUE getLineMax(VALUE obj) {
|
78
|
-
|
79
|
+
int32_t val = sysconf(_SC_LINE_MAX) ;
|
79
80
|
if (val < 0) return Qnil ;
|
80
81
|
|
81
|
-
return
|
82
|
+
return INT2NUM(val) ;
|
82
83
|
}
|
83
84
|
|
84
85
|
static VALUE getExprNestMax(VALUE obj) {
|
85
|
-
|
86
|
+
int32_t val = sysconf(_SC_EXPR_NEST_MAX) ;
|
86
87
|
if (val < 0) return Qnil ;
|
87
88
|
|
88
|
-
return
|
89
|
+
return INT2NUM(val) ;
|
89
90
|
}
|
90
91
|
|
91
92
|
static VALUE getProcessorConfigured(VALUE obj) {
|
92
|
-
|
93
|
+
int32_t val = sysconf(_SC_NPROCESSORS_CONF) ;
|
93
94
|
if (val < 0) return Qnil ;
|
94
95
|
|
95
|
-
return
|
96
|
+
return INT2NUM(val) ;
|
96
97
|
}
|
97
98
|
|
98
99
|
static VALUE getProcessorOnline(VALUE obj) {
|
99
|
-
|
100
|
+
int32_t val = sysconf(_SC_NPROCESSORS_ONLN) ;
|
100
101
|
if (val < 0) return Qnil ;
|
101
102
|
|
102
|
-
return
|
103
|
+
return INT2NUM(val) ;
|
103
104
|
}
|
104
105
|
|
105
106
|
static VALUE getUser(VALUE obj) {
|
@@ -108,15 +109,15 @@ static VALUE getUser(VALUE obj) {
|
|
108
109
|
}
|
109
110
|
|
110
111
|
static VALUE getUID(VALUE obj) {
|
111
|
-
return
|
112
|
+
return INT2NUM(getuid()) ;
|
112
113
|
}
|
113
114
|
|
114
115
|
static VALUE getGID(VALUE obj) {
|
115
|
-
return
|
116
|
+
return INT2NUM(getgid()) ;
|
116
117
|
}
|
117
118
|
|
118
119
|
static VALUE getEUID(VALUE obj) {
|
119
|
-
return
|
120
|
+
return INT2NUM(geteuid()) ;
|
120
121
|
}
|
121
122
|
|
122
123
|
static VALUE getHostname(VALUE obj) {
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'mkmf'
|
2
|
+
|
3
|
+
unless have_const('linux') || RbConfig::CONFIG['arch'].to_s[/linux/]
|
4
|
+
abort('Platform is not linux')
|
5
|
+
end
|
6
|
+
|
7
|
+
unless have_header('sys/sysinfo.h') && have_header('ruby.h')
|
8
|
+
abort('Missing header')
|
9
|
+
end
|
10
|
+
|
11
|
+
create_makefile 'linux_stat/sysinfo'
|
@@ -0,0 +1,130 @@
|
|
1
|
+
#include <sys/sysinfo.h>
|
2
|
+
#include <inttypes.h>
|
3
|
+
#include "ruby.h"
|
4
|
+
|
5
|
+
#if defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER)
|
6
|
+
#pragma GCC optimize ("O3")
|
7
|
+
#pragma GCC diagnostic warning "-Wall"
|
8
|
+
#elif defined(__clang__)
|
9
|
+
#pragma clang optimize on
|
10
|
+
#pragma clang diagnostic warning "-Wall"
|
11
|
+
#elif defined(__INTEL_COMPILER)
|
12
|
+
#pragma intel optimization_level 3
|
13
|
+
#endif
|
14
|
+
|
15
|
+
static struct sysinfo info ;
|
16
|
+
|
17
|
+
VALUE totalram(VALUE obj) {
|
18
|
+
static struct sysinfo info ;
|
19
|
+
short status = sysinfo(&info) ;
|
20
|
+
if (status < 0) return Qnil ;
|
21
|
+
|
22
|
+
VALUE _rb_v = ULL2NUM((unsigned long long) info.totalram) ;
|
23
|
+
VALUE _rb_mem_unit = ULL2NUM((unsigned long long) info.mem_unit) ;
|
24
|
+
return rb_funcallv_public(_rb_v, rb_intern("*"), 1, &_rb_mem_unit) ;
|
25
|
+
}
|
26
|
+
|
27
|
+
VALUE freeram(VALUE obj) {
|
28
|
+
short status = sysinfo(&info) ;
|
29
|
+
if (status < 0) return Qnil ;
|
30
|
+
|
31
|
+
VALUE _rb_v = ULL2NUM((unsigned long long) info.freeram) ;
|
32
|
+
VALUE _rb_mem_unit = ULL2NUM((unsigned long long) info.mem_unit) ;
|
33
|
+
return rb_funcallv_public(_rb_v, rb_intern("*"), 1, &_rb_mem_unit) ;
|
34
|
+
}
|
35
|
+
|
36
|
+
VALUE sharedram(VALUE obj) {
|
37
|
+
short status = sysinfo(&info) ;
|
38
|
+
if (status < 0) return Qnil ;
|
39
|
+
|
40
|
+
VALUE _rb_v = ULL2NUM((unsigned long long) info.sharedram) ;
|
41
|
+
VALUE _rb_mem_unit = ULL2NUM((unsigned long long) info.mem_unit) ;
|
42
|
+
return rb_funcallv_public(_rb_v, rb_intern("*"), 1, &_rb_mem_unit) ;
|
43
|
+
}
|
44
|
+
|
45
|
+
VALUE bufferram(VALUE obj) {
|
46
|
+
short status = sysinfo(&info) ;
|
47
|
+
if (status < 0) return Qnil ;
|
48
|
+
|
49
|
+
VALUE _rb_v = ULL2NUM((unsigned long long) info.bufferram) ;
|
50
|
+
VALUE _rb_mem_unit = ULL2NUM((unsigned long long) info.mem_unit) ;
|
51
|
+
return rb_funcallv_public(_rb_v, rb_intern("*"), 1, &_rb_mem_unit) ;
|
52
|
+
}
|
53
|
+
|
54
|
+
VALUE totalswap(VALUE obj) {
|
55
|
+
static struct sysinfo info ;
|
56
|
+
short status = sysinfo(&info) ;
|
57
|
+
if (status < 0) return Qnil ;
|
58
|
+
|
59
|
+
VALUE _rb_v = ULL2NUM((unsigned long long) info.totalswap) ;
|
60
|
+
VALUE _rb_mem_unit = ULL2NUM((unsigned long long) info.mem_unit) ;
|
61
|
+
return rb_funcallv_public(_rb_v, rb_intern("*"), 1, &_rb_mem_unit) ;
|
62
|
+
}
|
63
|
+
|
64
|
+
VALUE freeswap(VALUE obj) {
|
65
|
+
short status = sysinfo(&info) ;
|
66
|
+
if (status < 0) return Qnil ;
|
67
|
+
|
68
|
+
VALUE _rb_v = ULL2NUM((unsigned long long) info.freeswap) ;
|
69
|
+
VALUE _rb_mem_unit = ULL2NUM((unsigned long long) info.mem_unit) ;
|
70
|
+
return rb_funcallv_public(_rb_v, rb_intern("*"), 1, &_rb_mem_unit) ;
|
71
|
+
}
|
72
|
+
|
73
|
+
VALUE totalhigh(VALUE obj) {
|
74
|
+
short status = sysinfo(&info) ;
|
75
|
+
if (status < 0) return Qnil ;
|
76
|
+
|
77
|
+
VALUE _rb_v = ULL2NUM((unsigned long long) info.totalhigh) ;
|
78
|
+
VALUE _rb_mem_unit = ULL2NUM((unsigned long long) info.mem_unit) ;
|
79
|
+
return rb_funcallv_public(_rb_v, rb_intern("*"), 1, &_rb_mem_unit) ;
|
80
|
+
}
|
81
|
+
|
82
|
+
VALUE freehigh(VALUE obj) {
|
83
|
+
short status = sysinfo(&info) ;
|
84
|
+
if (status < 0) return Qnil ;
|
85
|
+
|
86
|
+
VALUE _rb_v = ULL2NUM((unsigned long long) info.freehigh) ;
|
87
|
+
VALUE _rb_mem_unit = ULL2NUM((unsigned long long) info.mem_unit) ;
|
88
|
+
return rb_funcallv_public(_rb_v, rb_intern("*"), 1, &_rb_mem_unit) ;
|
89
|
+
}
|
90
|
+
|
91
|
+
VALUE uptime(VALUE obj) {
|
92
|
+
short status = sysinfo(&info) ;
|
93
|
+
if (status < 0) return Qnil ;
|
94
|
+
|
95
|
+
uint64_t v = info.uptime ;
|
96
|
+
return ULL2NUM((unsigned long long) v) ;
|
97
|
+
}
|
98
|
+
|
99
|
+
VALUE loads(VALUE obj) {
|
100
|
+
short status = sysinfo(&info) ;
|
101
|
+
if(status < 0) return rb_ary_new() ;
|
102
|
+
|
103
|
+
long double load = 1.f / (1 << SI_LOAD_SHIFT) ;
|
104
|
+
|
105
|
+
float l_1 = info.loads[0] * load ;
|
106
|
+
float l_5 = info.loads[1] * load ;
|
107
|
+
float l_15 = info.loads[2] * load ;
|
108
|
+
|
109
|
+
return rb_ary_new_from_args(3,
|
110
|
+
rb_float_new(l_1),
|
111
|
+
rb_float_new(l_5),
|
112
|
+
rb_float_new(l_15)
|
113
|
+
) ;
|
114
|
+
}
|
115
|
+
|
116
|
+
void Init_sysinfo() {
|
117
|
+
VALUE _linux_stat = rb_define_module("LinuxStat") ;
|
118
|
+
VALUE _sysinfo = rb_define_module_under(_linux_stat, "Sysinfo") ;
|
119
|
+
|
120
|
+
rb_define_module_function(_sysinfo, "totalram", totalram, 0) ;
|
121
|
+
rb_define_module_function(_sysinfo, "freeram", freeram, 0) ;
|
122
|
+
rb_define_module_function(_sysinfo, "sharedram", sharedram, 0) ;
|
123
|
+
rb_define_module_function(_sysinfo, "bufferram", bufferram, 0) ;
|
124
|
+
rb_define_module_function(_sysinfo, "totalswap", totalswap, 0) ;
|
125
|
+
rb_define_module_function(_sysinfo, "freeswap", freeswap, 0) ;
|
126
|
+
rb_define_module_function(_sysinfo, "totalhigh", totalhigh, 0) ;
|
127
|
+
rb_define_module_function(_sysinfo, "freehigh", freehigh, 0) ;
|
128
|
+
rb_define_module_function(_sysinfo, "uptime", uptime, 0) ;
|
129
|
+
rb_define_module_function(_sysinfo, "loads", loads, 0) ;
|
130
|
+
}
|
data/lib/linux_stat.rb
CHANGED
@@ -23,20 +23,23 @@ require "linux_stat/version"
|
|
23
23
|
# But might be required by other module functions in "Dependent Modules" section
|
24
24
|
require "linux_stat/battery"
|
25
25
|
require "linux_stat/bios"
|
26
|
-
require "linux_stat/memory"
|
27
26
|
require "linux_stat/net"
|
28
27
|
require "linux_stat/pci"
|
29
28
|
require "linux_stat/process"
|
30
|
-
require "linux_stat/swap"
|
31
29
|
require "linux_stat/thermal"
|
32
30
|
require "linux_stat/usb"
|
33
31
|
|
34
32
|
# Dependent Modules
|
35
33
|
# Modules that can have reverse dependency
|
36
34
|
|
35
|
+
# LinuxStat::CPU.sysinfo dependent modules
|
36
|
+
require "linux_stat/sysinfo"
|
37
|
+
require "linux_stat/swap"
|
38
|
+
require "linux_stat/memory"
|
39
|
+
|
37
40
|
# LinuxStat::CPU.nproc dependent modules
|
38
|
-
require "linux_stat/cpu"
|
39
41
|
require "linux_stat/nproc"
|
42
|
+
require "linux_stat/cpu"
|
40
43
|
|
41
44
|
# LinuxStat::Uname dependent modules
|
42
45
|
require 'linux_stat/utsname'
|
data/lib/linux_stat/memory.rb
CHANGED
@@ -35,13 +35,23 @@ module LinuxStat
|
|
35
35
|
end
|
36
36
|
|
37
37
|
##
|
38
|
-
# Returns the total memory
|
38
|
+
# Returns the total memory reported by LS::Sysinfo.totalram()
|
39
39
|
# The value is in Kilobyte.
|
40
40
|
#
|
41
41
|
# It retuns an Integer but if the info is not available, it will return nil.
|
42
42
|
def total
|
43
|
-
|
44
|
-
|
43
|
+
v = LinuxStat::Sysinfo.totalram
|
44
|
+
v ? v.fdiv(1024).to_i : nil
|
45
|
+
end
|
46
|
+
|
47
|
+
##
|
48
|
+
# Returns the free memory reported by LS::Sysinfo.freeram()
|
49
|
+
# The value is in Kilobyte.
|
50
|
+
#
|
51
|
+
# It retuns an Integer but if the info is not available, it will return nil.
|
52
|
+
def free
|
53
|
+
v = LinuxStat::Sysinfo.freeram
|
54
|
+
v ? v.fdiv(1024).to_i : nil
|
45
55
|
end
|
46
56
|
|
47
57
|
##
|
data/lib/linux_stat/os.rb
CHANGED
@@ -158,6 +158,40 @@ module LinuxStat
|
|
158
158
|
}.freeze
|
159
159
|
end
|
160
160
|
|
161
|
+
##
|
162
|
+
# Returns uptime of the system reported by LinuxStat::Sysinfo.uptime()
|
163
|
+
# LinuxStat::OS.uptime_i
|
164
|
+
#
|
165
|
+
# 28956
|
166
|
+
#
|
167
|
+
# If the stat isn't available, nil is returned.
|
168
|
+
def uptime_i
|
169
|
+
LinuxStat::Sysinfo.uptime
|
170
|
+
end
|
171
|
+
|
172
|
+
##
|
173
|
+
# The first three fields in this file are load average
|
174
|
+
# figures giving the number of jobs in the run queue (state R)
|
175
|
+
# or waiting for disk I/O (state D) averaged over 1, 5,
|
176
|
+
# and 15 minutes. They are the same as the load average
|
177
|
+
# numbers given by uptime(1) and other programs.
|
178
|
+
# https://man7.org/linux/man-pages/man5/procfs.5.html
|
179
|
+
#
|
180
|
+
# The return type is an Hash containing the values
|
181
|
+
# that maps to 1, 5, and 15.
|
182
|
+
# This method calls LinuxStat::Sysinfo.loads() directly.
|
183
|
+
#
|
184
|
+
# However, if the info isn't available, it will return nil as values.
|
185
|
+
def loadavg
|
186
|
+
loads = LinuxStat::Sysinfo.loads
|
187
|
+
|
188
|
+
{
|
189
|
+
1 => loads[0],
|
190
|
+
5 => loads[1],
|
191
|
+
15 => loads[2]
|
192
|
+
}
|
193
|
+
end
|
194
|
+
|
161
195
|
alias distrib_version version
|
162
196
|
|
163
197
|
private
|
data/lib/linux_stat/swap.rb
CHANGED
@@ -57,8 +57,19 @@ module LinuxStat
|
|
57
57
|
#
|
58
58
|
# The return type is a Integer but if the info isn't available, it will return nil.
|
59
59
|
def total
|
60
|
-
|
61
|
-
|
60
|
+
v = LinuxStat::Sysinfo.totalswap
|
61
|
+
v ? v.fdiv(1024).to_i : nil
|
62
|
+
end
|
63
|
+
|
64
|
+
##
|
65
|
+
# Shows free swap.
|
66
|
+
#
|
67
|
+
# The value is in kilobytes.
|
68
|
+
#
|
69
|
+
# The return type is a Integer but if the info isn't available, it will return nil.
|
70
|
+
def free
|
71
|
+
v = LinuxStat::Sysinfo.freeswap
|
72
|
+
v ? v.fdiv(1024).to_i : nil
|
62
73
|
end
|
63
74
|
|
64
75
|
##
|
data/lib/linux_stat/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linux_stat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sourav Goswami
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Linux only, efficient linux system utilization reporting and system monitoring
|
14
14
|
gem
|
@@ -20,6 +20,7 @@ extensions:
|
|
20
20
|
- ext/fs_stat/extconf.rb
|
21
21
|
- ext/nproc/extconf.rb
|
22
22
|
- ext/sysconf/extconf.rb
|
23
|
+
- ext/sysinfo/extconf.rb
|
23
24
|
- ext/utsname/extconf.rb
|
24
25
|
extra_rdoc_files:
|
25
26
|
- README.md
|
@@ -35,6 +36,8 @@ files:
|
|
35
36
|
- ext/nproc/nproc.c
|
36
37
|
- ext/sysconf/extconf.rb
|
37
38
|
- ext/sysconf/sysconf.c
|
39
|
+
- ext/sysinfo/extconf.rb
|
40
|
+
- ext/sysinfo/sysinfo.c
|
38
41
|
- ext/utsname/extconf.rb
|
39
42
|
- ext/utsname/utsname.c
|
40
43
|
- lib/linux_stat.rb
|