Mercurial > kallithea
annotate init.d/kallithea-daemon-debian @ 5182:0e2d450feb03
git: run external commands as list of strings so we really get correct quoting (Issue #135)
a6dfd14d4b20 from
https://bitbucket.org/conservancy/kallithea/pull-request/17/add-quotes-to-repo-urls-for-git-backend
fixed that issue but did not make it "safe". The vcs git backend still used
command strings but tried to quote them correctly ... but that approach is
almost impossible to get right.
Instead, pass a string list all the way to the subprocess module and let it do
the quoting. This also makes some of the code more simple.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Tue, 09 Jun 2015 22:53:24 +0200 |
parents | 99ad9d0af1a3 |
children | e285bb7abb28 |
rev | line source |
---|---|
12 | 1 #!/bin/sh -e |
426
17d5028e055c
updated init scripts to start-stop-daemons
Marcin Kuzminski <marcin@python-works.com>
parents:
38
diff
changeset
|
2 ######################################## |
1262
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
3 #### THIS IS A DEBIAN INIT.D SCRIPT #### |
426
17d5028e055c
updated init scripts to start-stop-daemons
Marcin Kuzminski <marcin@python-works.com>
parents:
38
diff
changeset
|
4 ######################################## |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
5 |
12 | 6 ### BEGIN INIT INFO |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3225
diff
changeset
|
7 # Provides: kallithea |
12 | 8 # Required-Start: $all |
9 # Required-Stop: $all | |
10 # Default-Start: 2 3 4 5 | |
11 # Default-Stop: 0 1 6 | |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3225
diff
changeset
|
12 # Short-Description: starts instance of kallithea |
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3225
diff
changeset
|
13 # Description: starts instance of kallithea using start-stop-daemon |
12 | 14 ### END INIT INFO |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
15 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3225
diff
changeset
|
16 APP_NAME="kallithea" |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
17 APP_HOMEDIR="opt" |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
18 APP_PATH="/$APP_HOMEDIR/$APP_NAME" |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
19 |
426
17d5028e055c
updated init scripts to start-stop-daemons
Marcin Kuzminski <marcin@python-works.com>
parents:
38
diff
changeset
|
20 CONF_NAME="production.ini" |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
21 |
426
17d5028e055c
updated init scripts to start-stop-daemons
Marcin Kuzminski <marcin@python-works.com>
parents:
38
diff
changeset
|
22 PID_PATH="$APP_PATH/$APP_NAME.pid" |
17d5028e055c
updated init scripts to start-stop-daemons
Marcin Kuzminski <marcin@python-works.com>
parents:
38
diff
changeset
|
23 LOG_PATH="$APP_PATH/$APP_NAME.log" |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
24 |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
25 PYTHON_PATH="/$APP_HOMEDIR/$APP_NAME-venv" |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
26 |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
27 RUN_AS="root" |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
28 |
426
17d5028e055c
updated init scripts to start-stop-daemons
Marcin Kuzminski <marcin@python-works.com>
parents:
38
diff
changeset
|
29 DAEMON="$PYTHON_PATH/bin/paster" |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
30 |
426
17d5028e055c
updated init scripts to start-stop-daemons
Marcin Kuzminski <marcin@python-works.com>
parents:
38
diff
changeset
|
31 DAEMON_OPTS="serve --daemon \ |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
32 --user=$RUN_AS \ |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
33 --group=$RUN_AS \ |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
34 --pid-file=$PID_PATH \ |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
35 --log-file=$LOG_PATH $APP_PATH/$CONF_NAME" |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
36 |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
37 |
1262
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
38 start() { |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
39 echo "Starting $APP_NAME" |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
40 PYTHON_EGG_CACHE="/tmp" start-stop-daemon -d $APP_PATH \ |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
41 --start --quiet \ |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
42 --pidfile $PID_PATH \ |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
43 --user $RUN_AS \ |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
44 --exec $DAEMON -- $DAEMON_OPTS |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
45 } |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
46 |
1262
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
47 stop() { |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
48 echo "Stopping $APP_NAME" |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
49 start-stop-daemon -d $APP_PATH \ |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
50 --stop --quiet \ |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
51 --pidfile $PID_PATH || echo "$APP_NAME - Not running!" |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
52 |
1262
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
53 if [ -f $PID_PATH ]; then |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
54 rm $PID_PATH |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
55 fi |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
56 } |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
57 |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
58 status() { |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
59 echo -n "Checking status of $APP_NAME ... " |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
60 pid=`cat $PID_PATH` |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
61 status=`ps ax | grep $pid | grep -ve grep` |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
62 if [ "$?" -eq 0 ]; then |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
63 echo "running" |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
64 else |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
65 echo "NOT running" |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
66 fi |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
67 } |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
68 |
12 | 69 case "$1" in |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
70 status) |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
71 status |
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
72 ;; |
12 | 73 start) |
1262
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
74 start |
12 | 75 ;; |
76 stop) | |
1262
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
77 stop |
12 | 78 ;; |
79 restart) | |
426
17d5028e055c
updated init scripts to start-stop-daemons
Marcin Kuzminski <marcin@python-works.com>
parents:
38
diff
changeset
|
80 echo "Restarting $APP_NAME" |
432
90512560ed4d
more with init scripts !
Marcin Kuzminski <marcin@python-works.com>
parents:
431
diff
changeset
|
81 ### stop ### |
1262
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
82 stop |
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
83 wait |
432
90512560ed4d
more with init scripts !
Marcin Kuzminski <marcin@python-works.com>
parents:
431
diff
changeset
|
84 ### start ### |
1262
238bea955b54
simplified example init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
552
diff
changeset
|
85 start |
433
aeafda5481e4
more on that neverending topic :) init scripts
Marcin Kuzminski <marcin@python-works.com>
parents:
432
diff
changeset
|
86 ;; |
12 | 87 *) |
88 echo "Usage: $0 {start|stop|restart}" | |
89 exit 1 | |
3225
f9540f9c5999
little improvements for debian init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1262
diff
changeset
|
90 esac |