OpenSDE Framework (without history before r20070)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.1 KiB

  1. #!/bin/sh
  2. #
  3. # --- SDE-COPYRIGHT-NOTE-BEGIN ---
  4. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  5. #
  6. # Filename: lib/misc/treenice.sh
  7. # Copyright (C) 2008 The OpenSDE Project
  8. # Copyright (C) 2004 - 2006 The T2 SDE Project
  9. # Copyright (C) 1998 - 2003 Clifford Wolf
  10. #
  11. # More information can be found in the files COPYING and README.
  12. #
  13. # This program is free software; you can redistribute it and/or modify
  14. # it under the terms of the GNU General Public License as published by
  15. # the Free Software Foundation; version 2 of the License. A copy of the
  16. # GNU General Public License can be found in the file COPYING.
  17. # --- SDE-COPYRIGHT-NOTE-END ---
  18. main() {
  19. renice $newpriority -p $1 | sed "s,^,$2,"
  20. # for y in `ps -e -o ppid,pid | grep "^ *$1 " | sed "s,^ *$1 ,,"`
  21. for y in `cut -f1,4 -d' ' /proc/*/stat | grep " $1\$" | cut -f1 -d' '`
  22. do main $y "$2 " ; done
  23. }
  24. newpriority=$1
  25. shift
  26. if [ $# = 0 ] ; then
  27. echo "Usage: $0 <new priority> <pid> [ <pid> [ ... ] ]"
  28. exit 1
  29. else
  30. for x ; do
  31. for y in $( ps -e -o pid,comm | tail -n +2 |
  32. awk "\$1 == \"$x\" || \$2 == \"$x\" { print \$1; }" )
  33. do
  34. main $y ""
  35. done
  36. done
  37. fi
  38. exit 0