Mercurial > libervia-backend
annotate bin/sat @ 2901:f6b0088ce247
code (xmpp): store version after roster item update + fix item removal:
roster version is now stored after roster item has been added or removed. This way if something interrupting the process happens, former item update will be received and roster should be updated correctly.
Roster item removal was crashing because `load()` is not used (local PersistentDict cache is then not updated, and the key to remove is missing there). The exception is now catched and ignored to avoid loading the data only to remove an item.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 10 Apr 2019 21:04:41 +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 |