home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / System / Sysmon / s / Shutdown next >
AmigaDOS Script File  |  2000-05-30  |  2KB  |  90 lines

  1. .KEY countdown,reboot/s,rekick/s,noconf/s,quick/s
  2. ; $VER: Shutdown 1.2 (28.2.2000) © 1995-2000 by Etienne Vogt
  3. ; Sysmon system shutdown script
  4.  
  5. FailAt 100
  6. Echo "*N*E[37m SHUTDOWN *E[0m - Halt the system safely*N"
  7. If <noconf> NOT EQ "noconf"
  8.   Ask "*E[33mAre you sure you want to do this ?*E[0m"
  9.   If WARN 
  10.     Skip OK
  11.   Else
  12.     Quit 20
  13.   EndIf
  14. EndIf
  15.  
  16. Lab OK
  17. ChangeTaskPri 2                    ; Bump priority
  18. If <quick> EQ "quick"
  19.   Set timeout 10
  20. Else
  21.   Set timeout 50
  22. EndIf
  23. Set count <countdown$0>
  24. If $count GT 10 VAL
  25.   Set count 10
  26. EndIf
  27. Broadcast "$hostname will shutdown in $count minute(s)*N" SHUTDOWN COUNTDOWN=`Eval $count * 60` TIMEOUT=$timeout
  28. If $count NOT GT 0 VAL
  29.   Skip Now
  30. EndIf
  31.  
  32. Lab Loop
  33. If $count GT 5 VAL
  34.   Set next 5
  35.   Skip Waiting
  36. EndIf
  37. If $count GT 3 VAL
  38.   Set next 3
  39. Else
  40.   Set next `Eval $count - 1`
  41. EndIf
  42. Lab Waiting
  43. Wait `Eval $count - $next` min
  44. If WARN
  45.   Broadcast "$hostname shutdown has been cancelled*N" SHUTDOWN CANCEL
  46.   Quit 10
  47. Else
  48.   Broadcast "$hostname will shutdown in $next minute(s)*N" SHUTDOWN COUNTDOWN=`Eval $next * 60` TIMEOUT=$timeout
  49. EndIf
  50. Set count $next
  51. If $count GT 0 VAL
  52.   Skip BACK Loop
  53. EndIf
  54.  
  55. Lab Now
  56. UnSet count
  57. UnSet next
  58. SysLog "Shutdown : $hostname shutdown requested by operator" LEVEL=4
  59.  
  60. If <quick> NOT EQ "quick"
  61.   If EXISTS S:User-Shutdown
  62.     Echo "*NExecuting User-Shutdown script..."
  63.     Execute S:User-Shutdown
  64.   EndIf
  65.   Wait 2 sec
  66. EndIf
  67.  
  68. Echo "*NDismounting disk volumes..."
  69. Copy >NIL: C:Wait C:UnMount C:Execute C:Halt C:Broadcast RAM:    ; Copy needed commands
  70. CD RAM:
  71. Assign C: RAM:
  72. Path RAM: RESET
  73. Broadcast >NIL: "Dismounting disk volumes*N" UNMOUNT TIMEOUT=$timeout
  74. UnMount ALL INHIBIT
  75.  
  76. If <quick> NOT EQ "quick"
  77.   If EXISTS Final-Shutdown
  78.     Echo "*NExecuting Final-Shutdown script..."
  79.     Execute Final-Shutdown
  80.   EndIf
  81.   Wait 2 sec
  82. EndIf
  83.  
  84. Echo "*NSystem going down..."
  85. Broadcast >NIL: "System going down*N" HALT TIMEOUT=$timeout
  86. Halt <reboot> <rekick>
  87.  
  88. Echo "*NSystem Shutdown failed."
  89. Quit 100
  90.