|
|
1.1 root 1: $ !
2: $ ! Deal with requests for UUCICO
3: $ !
4: $ set noon
5: $ set proc/prio=4
6: $ set prot=w:re/default
7: $ assign nla0: sys$print ! Keep those log file coming in
8: $ !
9: $ ! Define Key Parameters & commands
10: $ !
11: $ UUCICO_DIR = "e$disk:[eunice.usr.lib.uucp]"
12: $ UUCICO_RESUBMIT_PERIOD = "+3:00:00"
13: $ UUCICO_QUEUE = "SYS$SPECIAL"
14: $ uucico:==$'UUCICO_DIR'uucico uucico
15: $ status = 1
16: $ !drain:==$e$disk:[eunice.usr.lib.uucp]drain drain
17: $ !
18: $ on error then $ goto error_mail ! If there is a problem go tell the Boss
19: $ !
20: $ ! Delete JOBID file (means JOB running)
21: $ delete 'UUCICO_DIR'uucico.jid;*
22: $ oncethrough = 0
23: $ Old_UUCICO_Command := "NEVER LIKELY TO BE IDENTICAL"
24: $!
25: $! Main loop. Get command file arguments and execute UUCICO.
26: $!
27: $ANOTHER_CMD_FILE:
28: $ UUCICO_CMD_FILE = F$SEARCH(UUCICO_DIR + "uucico.dat;*")
29: $ open/read/error=NO_COMMAND_FILE cmd_file 'UUCICO_DIR'uucico.dat
30: $ read cmd_file UUCICO_Command /end=EMPTY_COMMAND_FILE
31: $EMPTY_COMMAND_FILE:
32: $ close cmd_file
33: $ delete 'UUCICO_CMD_FILE' ! Delete the UUCICO command file just read
34: $ goto RUN_CICO
35: $!
36: $NO_COMMAND_FILE:
37: $ if oncethrough .eq. 1 then $ goto RESUBMIT
38: $ UUCICO_Command:="-r1" ! Default command = "look for work" (Once only)
39: $!
40: $RUN_CICO:
41: $ if Old_UUCICO_Command .eqs. UUCICO_Command then $ goto ANOTHER_CMD_FILE
42: $ ! allocate dedicated lines
43: $ !alloc ttd0:
44: $ uucico 'UUCICO_Command' !Run UUCICO
45: $ status = $status
46: $ ! Clear up terminal lines
47: $ !drain ttd0:
48: $ oncethrough = 1
49: $ Old_UUCICO_Command = UUCICO_Command
50: $ goto ANOTHER_CMD_FILE
51: $!
52: $error_mail:
53: $ set noon ! Push through regardless...
54: $ count = 0
55: $ status = $STATUS
56: $ subject = ""
57: $mail_error:
58: $ subject = subject + F$LOG("SYS$NODE")
59: $ subject = subject + "UUCICO error: " + F$STRING(STATUS)
60: $ subject = subject + " = "
61: $ subject = subject + F$MESSAGE(STATUS)
62: $ subject = subject + " " + UUCICO_COMMAND
63: $ dis_list = UUCICO_DIR + "Disaster.DIS"
64: $ dis_list = F$PARSE(dis_list)
65: $ if dis_list .eqs. "" then $ dis_list = "SYSTEM"
66: $ dis_list = F$SEARCH(dis_list)
67: $ if dis_list .eqs. "" then $ dis_list = "SYSTEM"
68: $ if F$LOCATE(".DIS",dis_list) .lt. F$Length(dis_list) then -
69: $ dis_list = "@" + dis_list
70: $ MAIL NL: "''DIS_LIST'" /Subject="''subject'"
71: $ if .not. $status then $ MAIL nl: SYSTEM -
72: /subject="UUCICO error mailing error ''STATUS' / ''$status'"
73: $ !
74: $RESUBMIT:
75: $ if status then $ purge sys$login:uucico.log/keep=2
76: $ ! Submit the job again later (Delta = defined above)
77: $ assign 'UUCICO_DIR'uucico.jid sys$output
78: $ submit 'UUCICO_DIR'uucico -
79: /after="''UUCICO_RESUBMIT_PERIOD'" -
80: /queue='UUCICO_QUEUE' /keep/noprint
81: $ status = $status
82: $ deassign sys$output
83: $ !
84: $ if status then $ exit
85: $ if "''count'" .eqs. "" then $ count = 0
86: $ if count .gt. 3 then $ exit
87: $ count = count + 1
88: $ subject = "Requeue Error:"
89: $ goto mail_error
90: $ exit
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.