Mercurial > libervia-backend
annotate bin/sat @ 3118:02492db1ce39
quick frontend (app): call `getReady` once connected to bridge:
namespaces and encryption plugins are only retrieved once backend is ready, else they may
not yet be available (can happen notably when the backend is start at the same time as the
frontend, e.g. on Android).
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 25 Jan 2020 21:08:26 +0100 |
parents | 0b6d56a8f7e3 |
children | e81ad34e8af8 |
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="" |
3028 | 5 PYTHON="python3" |
3099 | 6 |
7 # for Python 3, "twistd" is named "twistd3" on some distros, so we check for it first | |
8 TWISTD="$(which twistd3 2>/dev/null)" | |
9 if [ $? -ne 0 ]; then | |
10 TWISTD="$(which twistd 2>/dev/null)" | |
11 fi | |
12 if [ $? -ne 0 ]; then | |
13 printf "Can't find \"twistd\" script, are you sure that Twisted is installed?\n" | |
14 exit 1 | |
15 fi | |
234
a7079e835432
added stop command in sat.sh launching script
Goffi <goffi@goffi.org>
parents:
226
diff
changeset
|
16 |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
17 kill_process() { |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
18 # $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
|
19 if [ -f $1 ]; then |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
20 PID=`cat $1` |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
21 if ps -p $PID > /dev/null; then |
1878
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
22 printf "Terminating $2... " |
1548
61c03265e133
launching script: use SIGTERM instead of SIGINT with the “stop” command
Goffi <goffi@goffi.org>
parents:
1151
diff
changeset
|
23 kill $PID |
1878
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
24 while ps -p $PID > /dev/null; do |
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
25 sleep 0.2 |
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
26 done |
7a07f232e7cb
misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents:
1548
diff
changeset
|
27 printf "OK\n" |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
28 else |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
29 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
|
30 rm -f $1 |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
31 fi |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
32 else |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
33 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
|
34 fi |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
35 } |
4 | 36 |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
37 #We use python to parse config files |
3053
8b36e5c3f28f
misc: don't import memory in launch script:
Goffi <goffi@goffi.org>
parents:
3028
diff
changeset
|
38 eval `/usr/bin/env "$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
|
39 from sat.core.constants import Const as C |
3053
8b36e5c3f28f
misc: don't import memory in launch script:
Goffi <goffi@goffi.org>
parents:
3028
diff
changeset
|
40 from sat.tools.config import fixLocalDir |
3028 | 41 from configparser import ConfigParser |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
42 from os.path import expanduser, join |
463 | 43 import sys |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
44 |
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
|
45 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
|
46 |
3028 | 47 config = ConfigParser(defaults=C.DEFAULT_CONFIG) |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
48 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
|
49 config.read(C.CONFIG_FILES) |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
50 except: |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
51 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
|
52 print ("exit 1") |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
53 sys.exit() |
463 | 54 |
55 env=[] | |
56 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
|
57 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
|
58 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
|
59 env.append("APP_NAME_FILE='%s'" % C.APP_NAME_FILE) |
3028 | 60 print (";".join(env)) |
369
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
61 PYTHONEND |
e83d0c21d64d
launching script now read config files
Goffi <goffi@goffi.org>
parents:
358
diff
changeset
|
62 ` |
1114
7293233970ab
misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents:
1003
diff
changeset
|
63 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
|
64 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
|
65 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
|
66 RUNNING_MSG="$APP_NAME is running" |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
67 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
|
68 |
2562 | 69 # 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
|
70 if [ $# -eq 1 ];then |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
71 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
|
72 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
|
73 exit 0 |
1115 | 74 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
|
75 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
|
76 DEBUG="--debug" |
1115 | 77 elif [ $1 = "fg" ];then |
78 echo "Launching $APP_NAME in foreground mode" | |
79 DAEMON="n" | |
1151
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
80 elif [ $1 = "status" ];then |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
81 if [ -f $PID_FILE ]; then |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
82 PID=`cat $PID_FILE` |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
83 ps -p$PID 2>&1 > /dev/null |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
84 if [ $? = 0 ];then |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
85 echo "$RUNNING_MSG (pid: $PID)" |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
86 exit 0 |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
87 else |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
88 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
|
89 exit 2 |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
90 fi |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
91 else |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
92 echo "$NOT_RUNNING_MSG" |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
93 exit 1 |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
94 fi |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
95 else |
02c26e6630d0
misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents:
1122
diff
changeset
|
96 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
|
97 exit 1 |
931
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
98 fi |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
99 fi |
3b30e9f83d88
misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents:
930
diff
changeset
|
100 |
1122
9ae01ccf89c1
core: sat bakcend is now a twisted plugin (no more .tac file)
Goffi <goffi@goffi.org>
parents:
1115
diff
changeset
|
101 MAIN_OPTIONS="-${DAEMON}o" |
225
fd9b7834d98a
distutils installation script, draft
Goffi <goffi@goffi.org>
parents:
223
diff
changeset
|
102 |
1122
9ae01ccf89c1
core: sat bakcend is now a twisted plugin (no more .tac file)
Goffi <goffi@goffi.org>
parents:
1115
diff
changeset
|
103 #Don't change the next lines |
225
fd9b7834d98a
distutils installation script, draft
Goffi <goffi@goffi.org>
parents:
223
diff
changeset
|
104 AUTO_OPTIONS="" |
249
0ed5553b5313
added "debug" command to sat launcher script
Goffi <goffi@goffi.org>
parents:
234
diff
changeset
|
105 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
|
106 |
226
d8bb72f00eec
distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents:
225
diff
changeset
|
107 log_dir=`dirname "$LOG_FILE"` |
d8bb72f00eec
distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents:
225
diff
changeset
|
108 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
|
109 mkdir $log_dir |
226
d8bb72f00eec
distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents:
225
diff
changeset
|
110 fi |
d8bb72f00eec
distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents:
225
diff
changeset
|
111 |
3053
8b36e5c3f28f
misc: don't import memory in launch script:
Goffi <goffi@goffi.org>
parents:
3028
diff
changeset
|
112 exec /usr/bin/env $PYTHON $TWISTD $MAIN_OPTIONS $ADDITIONAL_OPTIONS $APP_NAME_FILE |