Advertisement
Guest User

Untitled

a guest
May 19th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1.  
  2. #/bin/bash
  3. p=-10
  4. s=2
  5. n=3
  6. t=300
  7. potprocesa="$1"
  8. abc=($potprocesa)
  9. potprocesa="${abc[0]}"
  10. if [ -z "$potprocesa" ]
  11. then
  12. potprocesa="$1"
  13. fi
  14. if [ "$#" -eq 2 ]
  15. then
  16. conffile="$2"
  17. fi
  18. if [[ ! -z "$conffile" ]]
  19. then
  20. if [ -f "$conffile" ]
  21. then
  22. while IFS= read -r vrstica
  23. do
  24. IFS=':' read -ra polje <<< "$vrstica"
  25. [[ "${polje[0]}" = "p" ]] && p="${polje[1]}"
  26. [[ "${polje[0]}" = "s" ]] && s="${polje[1]}"
  27. [[ "${polje[0]}" = "n" ]] && n="${polje[1]}"
  28. [[ "${polje[0]}" = "t" ]] && t="${polje[1]}"
  29. [[ "${polje[0]}" = "log" ]] && log="${polje[1]}"
  30. done < "$conffile"
  31. fi
  32. fi
  33. procesia=$(ps -eo pid,ni,cmd)
  34. IFS=$'\n' read -rd '' -a procesib <<<"$procesia"
  35. procesib=("${procesib[@]:1}")
  36. unset 'procesib[${#procesib[@]}-1]'
  37. re='^[+-]?[0-9]+$'
  38. instances=0
  39. for proces in "${procesib[@]}"
  40. do
  41. processplit=($proces)
  42. if [[ "${processplit[1]}" =~ $re ]]
  43. then
  44. a="${processplit[1]}"
  45. a=$((a + s))
  46. fi
  47. if [[ "${processplit[2]}" == "$potprocesa" ]]
  48. then
  49. sudo renice -n "$p" "${processplit[0]}"
  50. instances=$((instances + 1))
  51. else
  52. sudo renice -n "$a" "${processplit[0]}"
  53. fi
  54. done
  55. timer=$(awk -v t=$t 'BEGIN { print t / 1000 }')
  56. while [[ "$instances" -lt "$n" ]]
  57. do
  58. sleep "$timer"
  59. instances=$((instances + 1))
  60. sudo nice -n "$p" "$1"
  61. done
  62.  
  63. echo "Na tem mestu, $(date +"%-d. %-m.") je Zajec Veliki pomagal procesu $potprocesa."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement