41 lines
832 B
Bash
Executable file
41 lines
832 B
Bash
Executable file
#!/bin/bash
|
|
# Calm a process down
|
|
# NEEDS_WORK: cleanup
|
|
# calm <pid> == only one process
|
|
# calm <bin> == all processes that match query
|
|
# calm * == if used in proc or a folder with just PID files, if not you will get an error
|
|
# calm <pid> <bin> .... OK
|
|
# set's NICE value to 0
|
|
# need sudo
|
|
|
|
LD_INTERNAL=1
|
|
. $(dirname $(realpath $0))/daisy.source
|
|
|
|
pids=$@
|
|
|
|
errorFn()
|
|
{
|
|
echo calm: Invalid operation or no such PID/process \(\"$(echo "$pids" | tr '\n' ' ' | cut -c -20)...\"\)
|
|
exit
|
|
}
|
|
|
|
for pid in $pids
|
|
do
|
|
# Process to PID in elegant way
|
|
newpids=$(pidof "$pid")
|
|
if [ "$newpids" ]
|
|
then
|
|
binary=$pid
|
|
pid=$newpids
|
|
else
|
|
newbins=$pid
|
|
binary=$(ps -p "$pid" -o comm= 2>/dev/null )
|
|
if [ $? != 0 ]
|
|
then
|
|
errorFn
|
|
fi
|
|
fi
|
|
|
|
echo Calming down $pid \("$binary"\)...
|
|
sudo renice -n 0 -p $pid;
|
|
done
|