Mercurial > libervia-backend
annotate bin/sat @ 2609:75d2ac872965
jp (base): do not crash when item is specified (e.g. in URL) but not needed in command, but display a message on stderr.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 06 Jun 2018 19:24:15 +0200 |
parents | 26edcf3a30eb |
children | ab2696e34d29 |
rev | line source |
---|---|
4 | 1 #!/bin/sh |
225
fd9b7834d98a
distutils installation script, draft
Goffi <goffi@goffi.org>
parents:
223
diff
changeset
|
2 |
249
0ed5553b5313
added "debug" command to sat launcher script
Goffi <goffi@goffi.org>
parents:
234
diff
changeset
|
3 DEBUG="" |
1115 | 4 DAEMON="" |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
5 PYTHON="python2" |
2438
a34b4fca16e2
core (sat.sh): force python 2 to launch twistd, and avoid launching wrong version if twistd is installed for python 3 too
Goffi <goffi@goffi.org>
parents:
1878
diff
changeset
|
6 TWISTD="$(which twistd)" |
234
a7079e835432
added stop command in sat.sh launching script
Goffi <goffi@goffi.org>
parents:
226
diff
changeset
|
7 |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
8 kill_process() { |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
9 # $1 is the file containing the PID to kill, $2 is the process name |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
10 if [ -f $1 ]; then |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
11 PID=`cat $1` |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
12 if ps -p $PID > /dev/null; then |
1878
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
13 printf "Terminating $2... " |
1548
61c03265e133
launching script: use SIGTERM instead of SIGINT with the “stop” command
Goffi <goffi@goffi.org>
parents:
1151
diff
changeset
|
14 kill $PID |
1878
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
15 while ps -p $PID > /dev/null; do |
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
16 sleep 0.2 |
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
17 done |
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
18 printf "OK\n" |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
19 else |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
20 echo "No running process of ID $PID... removing PID file" |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
21 rm -f $1 |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
22 fi |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
23 else |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
24 echo "$2 is probably not running (PID file doesn't exist)" |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
25 fi |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
26 } |
4 | 27 |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
28 #We use python to parse config files |
473
a11cde0cdf5b
misc: Make the shell launcher use the same python interpreter than setup.py.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
463
diff
changeset
|
29 eval `"$PYTHON" << PYTHONEND |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
30 from sat.core.constants import Const as C |
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
31 from sat.memory.memory import fixLocalDir |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
32 from ConfigParser import SafeConfigParser |
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
33 from os.path import expanduser, join |
463 | 34 import sys |
1114
7293233970ab
misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents:
1003
diff
changeset
|
35 import codecs |
7293233970ab
misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents:
1003
diff
changeset
|
36 import locale |
7293233970ab
misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents:
1003
diff
changeset
|
37 |
7293233970ab
misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents:
1003
diff
changeset
|
38 sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout) |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
39 |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
40 fixLocalDir() # XXX: tmp update code, will be removed in the future |
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
41 |
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
42 config = SafeConfigParser(defaults=C.DEFAULT_CONFIG) |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
43 try: |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
44 config.read(C.CONFIG_FILES) |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
45 except: |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
46 print ("echo \"/!\\ Can't read main config ! Please check the syntax\";") |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
47 print ("exit 1") |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
48 sys.exit() |
463 | 49 |
50 env=[] | |
51 env.append("PID_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'pid_dir')),'')) | |
930
cbf4122baae7
core, memory: use XDG recommended paths as the defaults for the config and local directories
souliane <souliane@mailoo.org>
parents:
587
diff
changeset
|
52 env.append("LOG_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'log_dir')),'')) |
1114
7293233970ab
misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents:
1003
diff
changeset
|
53 env.append("APP_NAME='%s'" % C.APP_NAME) |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
54 env.append("APP_NAME_FILE='%s'" % C.APP_NAME_FILE) |
463 | 55 print ";".join(env) |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
56 PYTHONEND |
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
57 ` |
1114
7293233970ab
misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents:
1003
diff
changeset
|
58 APP_NAME="$APP_NAME" |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
59 PID_FILE="$PID_DIR$APP_NAME_FILE.pid" |
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
60 LOG_FILE="$LOG_DIR$APP_NAME_FILE.log" |
1151
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
61 RUNNING_MSG="$APP_NAME is running" |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
62 NOT_RUNNING_MSG="$APP_NAME is *NOT* running" |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
63 |
2562 | 64 # if there is one argument which is "stop", then we kill SaT |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
65 if [ $# -eq 1 ];then |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
66 if [ $1 = "stop" ];then |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
67 kill_process $PID_FILE "$APP_NAME" |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
68 exit 0 |
1115 | 69 elif [ $1 = "debug" ];then |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
931
diff
changeset
|
70 echo "Launching $APP_NAME in debug mode" |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
71 DEBUG="--debug" |
1115 | 72 elif [ $1 = "fg" ];then |
73 echo "Launching $APP_NAME in foreground mode" | |
74 DAEMON="n" | |
1151
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
75 elif [ $1 = "status" ];then |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
76 if [ -f $PID_FILE ]; then |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
77 PID=`cat $PID_FILE` |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
78 ps -p$PID 2>&1 > /dev/null |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
79 if [ $? = 0 ];then |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
80 echo "$RUNNING_MSG (pid: $PID)" |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
81 exit 0 |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
82 else |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
83 echo "$NOT_RUNNING_MSG, but a pid file is present (bad exit ?): $PID_FILE" |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
84 exit 2 |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
85 fi |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
86 else |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
87 echo "$NOT_RUNNING_MSG" |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
88 exit 1 |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
89 fi |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
90 else |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
91 echo "bad argument, please use one of (stop, debug, fg, status) or no argument" |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
92 exit 1 |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
93 fi |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
94 fi |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
95 |
1122
9ae01ccf89c1
core: sat bakcend is now a twisted plugin (no more .tac file)
Goffi <goffi@goffi.org>
parents:
1115
diff
changeset
|
96 MAIN_OPTIONS="-${DAEMON}o" |
225
fd9b7834d98a
distutils installation script, draft
Goffi <goffi@goffi.org>
parents:
223
diff
changeset
|
97 |
1122
9ae01ccf89c1
core: sat bakcend is now a twisted plugin (no more .tac file)
Goffi <goffi@goffi.org>
parents:
1115
diff
changeset
|
98 #Don't change the next lines |
225
fd9b7834d98a
distutils installation script, draft
Goffi <goffi@goffi.org>
parents:
223
diff
changeset
|
99 AUTO_OPTIONS="" |
249
0ed5553b5313
added "debug" command to sat launcher script
Goffi <goffi@goffi.org>
parents:
234
diff
changeset
|
100 ADDITIONAL_OPTIONS="--pidfile $PID_FILE --logfile $LOG_FILE $AUTO_OPTIONS $DEBUG" |
225
fd9b7834d98a
distutils installation script, draft
Goffi <goffi@goffi.org>
parents:
223
diff
changeset
|
101 |
226
d8bb72f00eec
distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents:
225
diff
changeset
|
102 log_dir=`dirname "$LOG_FILE"` |
d8bb72f00eec
distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents:
225
diff
changeset
|
103 if [ ! -d $log_dir ] ; then |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
104 mkdir $log_dir |
226
d8bb72f00eec
distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents:
225
diff
changeset
|
105 fi |
d8bb72f00eec
distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents:
225
diff
changeset
|
106 |
2438
a34b4fca16e2
core (sat.sh): force python 2 to launch twistd, and avoid launching wrong version if twistd is installed for python 3 too
Goffi <goffi@goffi.org>
parents:
1878
diff
changeset
|
107 exec $PYTHON $TWISTD $MAIN_OPTIONS $ADDITIONAL_OPTIONS $APP_NAME_FILE |