Guest User

Untitled

a guest
Jun 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. LANCEMENT_HEURE_DEBUT=15
  4. LANCEMENT_HEURE_FIN=16
  5. ARRET_HEURE_DEBUT=16
  6. ARRET_HEURE_FIN=17
  7. SCRIPT_NAME="pysoul/pysoul.py"
  8. SIGNAL_TO_KILL=1
  9. USERS=("benais_w" "desmar_s" "devaux_a" "ghanay" "lacroi_t" "nassim_a" "pillet_c" "seguin_s")
  10. SLEEP_TIME=1 # minutes
  11.  
  12.  
  13. function runScript(){
  14. local lUSER="${1}"
  15. local lSCRIPTNAME="python /home/${lUSER}/${SCRIPT_NAME}"
  16. if [ $(ps aux | grep -v grep | grep "${lSCRIPTNAME}" | grep "${lUSER}" | wc -l) -eq 0 ]; then
  17. echo "[+] launching script ${lSCRIPTNAME} with UID ${lUSER}"
  18. su "${lUSER}" -c "${lSCRIPTNAME} &> /dev/null &"
  19. else
  20. echo "[-] script ${lSCRIPTNAME} already launched with UID ${lUSER}"
  21. fi
  22. }
  23.  
  24.  
  25. function killScript(){
  26. local lUSER="${1}"
  27. local lSCRIPTNAME="/home/${lUSER}/${SCRIPT_NAME}"
  28. if [ $(ps aux | grep -v grep | grep "${lSCRIPTNAME}" | wc -l) -eq 0 ]; then
  29. echo "[-] script ${lSCRIPTNAME} not launched with UID ${lUSER}"
  30. else
  31. echo "[+] killing script ${lSCRIPTNAME} with UID ${USER}"
  32. local lPID=$(ps aux | grep -v grep | grep "${lUSER}" | grep "${lSCRIPTNAME}" | awk '{print $2}')
  33. kill -${SIGNAL_TO_KILL} ${lPID}
  34. fi
  35. }
  36.  
  37.  
  38.  
  39.  
  40. echo "[+] ${0} started with ${#USERS[@]} users to handle"
  41.  
  42. IDX=0
  43. while [ true ]; do
  44. HEURE_COURANTE=$(date +'%H')
  45. if [ ${HEURE_COURANTE} -ge ${LANCEMENT_HEURE_DEBUT} -a ${HEURE_COURANTE} -le ${LANCEMENT_HEURE_FIN} ]; then
  46. runScript "${USERS[${IDX}]}"
  47. fi
  48.  
  49.  
  50. if [ ${HEURE_COURANTE} -ge ${ARRET_HEURE_DEBUT} -a ${HEURE_COURANTE} -le ${ARRET_HEURE_FIN} ]; then
  51. killScript "${USERS[${IDX}]}"
  52. fi
  53.  
  54. echo "[+] sleeping ${SLEEP_TIME} minute(s)..."
  55. sleep $(( 60 * ${SLEEP_TIME} )) # 1 minute
  56.  
  57. IDX=$(( ${IDX} + 1 ))
  58. if [ ${IDX} -ge ${#USERS[@]} ]; then
  59. IDX=0
  60. fi
  61.  
  62. done
  63.  
  64.  
  65. exit 0
Add Comment
Please, Sign In to add comment