From 1d7a95e19c7cb75883838148ef30d78dffb9adb3 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Wed, 25 Oct 2023 12:29:48 -0300 Subject: bin/nicely: Add new working utility --- bin/nicely | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 bin/nicely (limited to 'bin') diff --git a/bin/nicely b/bin/nicely new file mode 100755 index 0000000..d062f02 --- /dev/null +++ b/bin/nicely @@ -0,0 +1,67 @@ +#!/bin/sh +set -eu + +usage() { + cat <<-'EOF' + Usage: + nicely COMMAND... + nicely -h + EOF +} + +help() { + cat <<-'EOF' + + + Options: + -h, --help show this message + + COMMAND the command to be wrapped + + + Wrap COMMAND in nice(1) and ionice(1) calls, so that it gets low + priority from the OS scheduler and has low disturbance regarding + CPU usage and disk IO bandwidth. + + + Examples: + + Make the backup low priority: + + $ nicely backup + EOF +} + + +for flag in "$@"; do + case "$flag" in + (--) + break + ;; + (--help) + usage + help + exit + ;; + (*) + ;; + esac +done + +while getopts 'h' flag; do + case "$flag" in + (h) + usage + help + exit + ;; + (*) + usage >&2 + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + + +ionice -c3 nice -n19 "$@" -- cgit v1.2.3