-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscanlog.csh
executable file
·80 lines (65 loc) · 2.38 KB
/
scanlog.csh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/tcsh
#
# chkconfig: - 98 98
# description: Record starting and ending times of USAXS scans
#
# processname: scanlog
###### crontab -e task #########################
# build: http://usaxs.xray.aps.anl.gov/livedata/scanlog.xml
# */5 * * * * /home/beams/USAXS/Documents/eclipse/USAXS/scanLog/scanlog.csh checkup 2>&1 /dev/null
################################################
#setenv PYTHON /APSshare/epd/rh6-x86_64/bin/python
setenv PYTHON /APSshare/anaconda/x86_64/bin/python
setenv HDF5_DISABLE_VERSION_CHECK 2
setenv HOME_DIR /home/beams/USAXS
setenv BASE_DIR ${HOME_DIR}/Documents/eclipse/USAXS/scanLog
setenv WWW_DIR /share1/local_livedata
setenv THIS_FILE ${BASE_DIR}/scanlog.csh
setenv SCRIPT ${BASE_DIR}/scanLog.py
setenv LOGFILE ${WWW_DIR}/scanlog.log
setenv PIDFILE ${WWW_DIR}/scanlog.pid
setenv DATE "/bin/date --rfc-3339='seconds'"
setenv SNAME $0
setenv SELECTION $1
#/bin/echo "#${SNAME} ${SELECTION}>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >>& ${LOGFILE}
/bin/echo "# `${DATE}` ${SNAME} ${SELECTION}" >>& ${LOGFILE}
#/bin/echo "# env: `env|sort`" >>& ${LOGFILE}
switch (${SELECTION})
case "start":
${PYTHON} ${SCRIPT} >>& ${LOGFILE} &
setenv PID $!
/bin/rm ${PIDFILE}
/bin/echo ${PID} > ${PIDFILE}
/bin/echo "started ${PID}: ${PYTHON} ${SCRIPT}"
/bin/echo "# `${DATE}`: started ${PID}: ${SCRIPT}" >>& ${LOGFILE}
breaksw
case "stop":
setenv PID `/bin/cat ${PIDFILE}`
/bin/ps -p ${PID} > /dev/null
setenv NOT_EXISTS $?
if (${NOT_EXISTS}) then
/bin/echo "not running ${PID}: ${SCRIPT}"
else
kill ${PID}
/bin/echo "stopped ${PID}: ${SCRIPT}"
/bin/echo "# `${DATE}`: stopped ${PID}: ${SCRIPT}" >>& ${LOGFILE}
endif
breaksw
case "restart":
${SNAME} stop
${SNAME} start
breaksw
case "checkup":
set pid = `/bin/cat ${PIDFILE}`
set test = `/bin/ps -p ${pid} --no-header -o pid`
if (${pid} != ${test}) then
echo "# `${DATE}` could not identify running process ${pid}, restarting" >>& ${LOGFILE}
echo `${THIS_FILE} restart` >& /dev/null
${SNAME} restart
endif
breaksw
default:
/bin/echo "Usage: ${SNAME} {start|stop|restart|checkup}"
breaksw
endsw
#/bin/echo "#${SNAME} ${SELECTION}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" >>& ${LOGFILE}