SYSTEROID(8)

πŸ“¦ version 0.4.6, in alpine 3.24, arch rolling

🌸 SYSTEROID(8) 🌸

okay bestie, welcome to systeroid β€” the glow-up of sysctl β€” in section 8 of the manual (System Administration, iykyk) πŸ’…


✨ NAME ✨

systeroid β€” configure kernel parameters at runtime πŸŽ€


✨ SYNOPSIS ✨

systeroid [options] [variable[=value] ...] --load[=<file>]

✨ DESCRIPTION ✨

so systeroid is what you use to modify kernel parameters at runtime, no reboot, no drama πŸ’–. The parameters you can touch are literally the ones listed under /proc/sys/. Procfs is required for systeroid support on Linux β€” that's the vibe check, no procfs no party. And yes, you can use systeroid for both reading and writing sysctl data. read it, write it, slay it ✨


✨ PARAMETERS ✨

  • variable β€” the name of a key to read from. an example is kernel.ostype. also, the '/' separator is accepted in place of a '.' πŸ¦‹
  • variable=value β€” to set a key, use the form variable=value where variable is the key and value is the value to set it to. if the value contains quotes or characters which are parsed by the shell, you may need to enclose the value in double quotes. protecting your value from the shell is self-care, fr fr 🫢
  • -a, --all β€” display all variables currently available. (-A,-X) πŸ‘‘
  • -T, --tree β€” display the variables in a tree-like format 🌳
  • -J, --json β€” display the variables in JSON format. for the json girlies 🧚
  • --deprecated β€” include deprecated parameters to --all values listing πŸ’€
  • -e, --ignore β€” use this option to ignore errors about unknown keys. no thoughts head empty, error who πŸ™ˆ
  • -N, --names β€” use this option to only print the names. it may be useful with shells that have programmable completion ⭐
  • -n, --values β€” use this option to disable printing of the key name when printing values πŸŽ€
  • -b, --binary β€” print only variable values without new line. no newline, no problem πŸ”₯
  • -p[FILE], --load[=FILE] β€” load in sysctl settings from the file specified or /etc/sysctl.conf if none given. specifying - as filename means reading data from standard input πŸ“₯
  • -S, --system β€” load settings from all system configuration files. see the CONFIGURATION section below πŸ‘‡
  • -r, --pattern <expr> β€” only apply settings that match pattern. the pattern uses extended regular expression syntax ✨ regex moment ✨
  • -q, --quiet β€” use this option to not display the values set to stdout 🀫
  • -w, --write β€” use this option when all arguments prescribe a key to be set ✍️
  • -E, --explain β€” use this option to print a detailed explanation of a variable. the main character option, honestly πŸ‘‘βœ¨
  • -D, --docs <path> β€” use this option to set a custom path for the kernel documentation πŸ“š
  • -P, --no-pager β€” use this option to disable piping output into a pager 🚫
  • -v, --verbose β€” use this option to enable verbose logging πŸ—£οΈ
  • --tui β€” use this option to show the terminal user interface. the systeroid-tui binary should be present in $PATH. see systeroid-tui(8) for more information πŸ’»πŸ’…
  • -h, --help β€” display help text and exit. (-d) 🫢
  • -V, --version β€” display version information and exit 🏷️

✨ EXAMPLES ✨

here's the lookbook, bestie β€” copy these exact ones πŸŽ€

systeroid -a
systeroid -t
systeroid vm user
systeroid -n kernel.hostname
systeroid kernel.domainname="example.com"
systeroid dmesg_restrict=0
systeroid -p /etc/sysctl.conf
systeroid -r 'net.ipv4.conf.(eth|wlan)0.arp'
systeroid --names --tree --pattern 'kernel.*_max$'
systeroid --explain oom_dump_tasks
systeroid -E user.max_user_namespaces --docs /usr/share/doc/linux
systeroid --no-pager -E kernel.ctrl-alt-del
systeroid --tui

✨ DEPRECATED PARAMETERS ✨

okay listen, base_reachable_time and retrans_time are deprecated πŸ’€. the systeroid command does not allow changing values of these parameters. users who insist to use deprecated kernel interfaces should push values to /proc file system by other means. for example:

echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
like, we can't stop you, but we can judge you a lil πŸ™ˆ

✨ CONFIGURATION ✨

sysctl.conf is a simple file containing sysctl values to be read in and set by systeroid. the syntax is simply as follows:

# comment
; comment

token = value

note that blank lines are ignored, and whitespace before and after a token or value is ignored, although a value can contain whitespace within. lines which begin with a # or ; are considered comments and ignored 🌸

if a line begins with a single -, any attempts to set the value that fail will be ignored 🀝

πŸ¦‹ EXAMPLE πŸ¦‹

# sysctl.conf sample
#
  kernel.domainname = example.com
; this one has a space which will be written to the sysctl!
  kernel.modprobe = /sbin/mod probe

πŸ¦‹ FILES πŸ¦‹

when using the --system option, systeroid will read files from directories in the following list πŸ“‚

/etc/sysctl.d/*.conf
/run/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf

✨ SEE ALSO ✨

systeroid-tui(8) β€” go read the other one too, bestie 🫢


✨ AUTHOR ✨

Orhun ParmaksΔ±z πŸ‘‘


Copyright Β© 2022-2024 Orhun ParmaksΔ±z Licensed under either of Apache License Version 2.0 or The MIT License at your option πŸ“œ


✨ REPORTING BUGS ✨

report bugs at <https://github.com/orhun/systeroid/issues> or contact the author via email πŸ“§ see the project homepage at <https://github.com/orhun/systeroid> for full documentation 🌈


and that's the whole page, bestie β€” no cap, every last flag accounted for πŸ’–

this was systeroid, page 8, version dated 2025-09-07 β€” mwah, go configure your kernel, you absolute icon πŸ’…βœ¨

πŸ“¦ where this page comes from