Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #/bin/bash
- p=-10
- s=2
- n=3
- t=300
- potprocesa="$1"
- potprocesa=$(echo "$potprocesa" | cut -d" " -f1)
- echo "$potprocesa"
- if [ -z "$potprocesa" ]
- then
- potprocesa="$1"
- fi
- if [ "$#" -eq 2 ]
- then
- conffile="$2"
- fi
- if [[ ! -z "$conffile" ]]
- then
- if [ -f "$conffile" ]
- then
- while IFS= read -r vrstica
- do
- IFS=':' read -ra polje <<< "$vrstica"
- [[ "${polje[0]}" = "p" ]] && p="${polje[1]}"
- [[ "${polje[0]}" = "s" ]] && s="${polje[1]}"
- [[ "${polje[0]}" = "n" ]] && n="${polje[1]}"
- [[ "${polje[0]}" = "t" ]] && t="${polje[1]}"
- [[ "${polje[0]}" = "log" ]] && log="${polje[1]}"
- done < "$conffile"
- fi
- fi
- procesia=$(ps -eo pid,ni,cmd)
- IFS=$'\n' read -rd '' -a procesib <<<"$procesia"
- procesib=("${procesib[@]:1}")
- unset 'procesib[${#procesib[@]}-1]'
- re='^[+-]?[0-9]+$'
- instances=0
- for proces in "${procesib[@]}"
- do
- processplit=($proces)
- if [[ "${processplit[1]}" =~ $re ]]
- then
- a="${processplit[1]}"
- a=$((a + s))
- fi
- if [[ "${processplit[2]}" == "$potprocesa" ]]
- then
- renice -n "$p" "${processplit[0]}"
- instances=$((instances + 1))
- else
- renice -n "$a" "${processplit[0]}"
- fi
- done
- timer=$(awk -v t=$t 'BEGIN { print t / 1000 }')
- while [[ "$instances" -lt "$n" ]]
- do
- sleep "$timer"
- instances=$((instances + 1))
- eval "$1" &
- done
- echo "Na tem mestu, $(date +"%-d. %-m.") je Zajec Veliki pomagal procesu $potprocesa."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement