Mercurial > kallithea
annotate init.d/kallithea-daemon-redhat @ 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 | 24c0d584ba86 |
children | e285bb7abb28 |
rev | line source |
---|---|
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
1 #!/bin/sh |
1545
a7bee2a5de67
Added header for redhat init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1542
diff
changeset
|
2 ######################################## |
a7bee2a5de67
Added header for redhat init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1542
diff
changeset
|
3 #### THIS IS A REDHAT INIT.D SCRIPT #### |
a7bee2a5de67
Added header for redhat init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1542
diff
changeset
|
4 ######################################## |
a7bee2a5de67
Added header for redhat init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1542
diff
changeset
|
5 |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
6 ################################################## |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
7 # |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4190
diff
changeset
|
8 # Kallithea server startup script |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
9 # Recommended default-startup: 2 3 4 5 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
10 # Recommended default-stop: 0 1 6 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
11 # |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
12 ################################################## |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
13 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
14 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
15 APP_NAME="kallithea" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
16 # the location of your app |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
17 # since this is a web app, it should go in /var/www |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
18 APP_PATH="/var/www/$APP_NAME" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
19 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
20 CONF_NAME="production.ini" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
21 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
22 # write to wherever the PID should be stored, just ensure |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
23 # that the user you run paster as has the appropriate permissions |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
24 # same goes for the log file |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
25 PID_PATH="/var/run/kallithea/pid" |
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
26 LOG_PATH="/var/log/kallithea/kallithea.log" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
27 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
28 # replace this with the path to the virtual environment you |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4190
diff
changeset
|
29 # made for Kallithea |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
30 PYTHON_PATH="/opt/python_virtualenvironments/kallithea-venv" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
31 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
32 RUN_AS="kallithea" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
33 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
34 DAEMON="$PYTHON_PATH/bin/paster" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
35 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
36 DAEMON_OPTS="serve --daemon \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
37 --user=$RUN_AS \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
38 --group=$RUN_AS \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
39 --pid-file=$PID_PATH \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
40 --log-file=$LOG_PATH $APP_PATH/$CONF_NAME" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
41 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
42 DESC="kallithea-server" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
43 LOCK_FILE="/var/lock/subsys/$APP_NAME" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
44 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
45 # source CentOS init functions |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
46 . /etc/init.d/functions |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
47 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
48 RETVAL=0 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
49 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
50 remove_pid () { |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
51 rm -f ${PID_PATH} |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
52 rmdir `dirname ${PID_PATH}` |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
53 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
54 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
55 ensure_pid_dir () { |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
56 PID_DIR=`dirname ${PID_PATH}` |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
57 if [ ! -d ${PID_DIR} ] ; then |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
58 mkdir -p ${PID_DIR} |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
59 chown -R ${RUN_AS}:${RUN_AS} ${PID_DIR} |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
60 chmod 755 ${PID_DIR} |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
61 fi |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
62 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
63 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
64 start_kallithea () { |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
65 ensure_pid_dir |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
66 PYTHON_EGG_CACHE="/tmp" daemon --pidfile $PID_PATH \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
67 --user $RUN_AS "$DAEMON $DAEMON_OPTS" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
68 RETVAL=$? |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
69 [ $RETVAL -eq 0 ] && touch $LOCK_FILE |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
70 return $RETVAL |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
71 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
72 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
73 stop_kallithea () { |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
74 if [ -e $LOCK_FILE ]; then |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
75 killproc -p $PID_PATH |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
76 RETVAL=$? |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
77 rm -f $LOCK_FILE |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
78 rm -f $PID_PATH |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
79 else |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
80 RETVAL=1 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
81 fi |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
82 return $RETVAL |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
83 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
84 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
85 status_kallithea() { |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
86 if [ -e $LOCK_FILE ]; then |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
87 # exit with non-zero to indicate failure |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
88 RETVAL=1 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
89 else |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
90 RETVAL=0 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
91 fi |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
92 return $RETVAL |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
93 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
94 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
95 restart_kallithea () { |
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
96 stop_kallithea |
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
97 start_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
98 RETVAL=$? |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
99 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
100 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
101 case "$1" in |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
102 start) |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
103 echo -n $"Starting $DESC: " |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
104 start_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
105 echo |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
106 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
107 stop) |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
108 echo -n $"Stopping $DESC: " |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
109 stop_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
110 echo |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
111 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
112 status) |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
113 status_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
114 RETVAL=$? |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
115 if [ ! $RETVAL -eq 0 ]; then |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4190
diff
changeset
|
116 echo "Kallithea server is running..." |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
117 else |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4190
diff
changeset
|
118 echo "Kallithea server is stopped." |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
119 fi |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
120 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
121 restart) |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
122 echo -n $"Restarting $DESC: " |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
123 restart_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
124 echo |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
125 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
126 *) |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
127 echo $"Usage: $0 {start|stop|restart|status}" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
128 RETVAL=1 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
129 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
130 esac |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
131 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
132 exit $RETVAL |