@@ -22,13 +22,13 @@ CONF="apache2.conf"
22
22
# Platform specific apache extras
23
23
EXTRA_CONF=' '
24
24
if [[ $platform == ' Linux' ]]; then
25
- EXTRA_CONF="
25
+ EXTRA_CONF="
26
26
# Include module configuration:
27
27
Include /etc/apache2/mods-enabled/*.load
28
28
Include /etc/apache2/mods-enabled/*.conf
29
29
"
30
30
elif [[ $platform == ' Darwin' ]]; then
31
- EXTRA_CONF="
31
+ EXTRA_CONF="
32
32
# Modules
33
33
$( cat /etc/apache2/httpd.conf | grep LoadModule | sed ' s/libexec/\/usr\/libexec/g' )
34
34
LoadModule php5_module /usr/libexec/apache2/libphp5.so
37
37
38
38
# Include phpmyadmin only if there
39
39
if [[ -f " /etc/apache2/conf.d/phpmyadmin.conf" ]]; then
40
- EXTRA_CONF+="
40
+ EXTRA_CONF+="
41
41
Include /etc/apache2/conf.d/phpmyadmin.conf
42
42
"
43
43
fi
@@ -64,9 +64,9 @@ MaxSpareServers 1
64
64
# Serve our workspace
65
65
DocumentRoot "${WORKSPACE} "
66
66
<Directory />
67
- AllowOverride all
68
- Order allow,deny
69
- Allow from all
67
+ AllowOverride all
68
+ Order allow,deny
69
+ Allow from all
70
70
</Directory>
71
71
72
72
AddType application/x-httpd-php .php
@@ -83,106 +83,123 @@ MYSQL_STARTED=false
83
83
MYSQL_PORT=3306
84
84
85
85
function is_mysql_running() {
86
- # Check if there is a TCP server listening on MySQL's port
87
- netstat -nat | grep -i listen | grep -e " [\:\.]${MYSQL_ROOT } " & > /dev/null
88
- # Check for success
89
- if [ $? = 0 ]; then
90
- echo " true"
91
- fi
86
+ # Check if there is a TCP server listening on MySQL's port
87
+ netstat -nat | grep -i listen | grep -e " [\:\.]${MYSQL_PORT } " & > /dev/null
88
+ # Check for success
89
+ if [ $? = = 0 ]; then
90
+ echo " true"
91
+ fi
92
92
}
93
93
94
94
# Echoes sudo if the system supports sudo without password for current user (codebox.io boxes for example)
95
95
function needs_sudo_pwd() {
96
- sudo -n echo | head -n 1 | grep -q -v " sudo:"
97
- local success=$?
98
- if [ success = 0 ]; then
99
- # No password needed
100
- echo " true"
101
- fi
96
+ sudo -n echo | head -n 1 | grep -q -v " sudo:"
97
+ if [ $? == 0 ]; then
98
+ # No password needed
99
+ echo " true"
100
+ fi
102
101
}
103
102
104
103
# Start mysql and set SUDO_MYSQL
105
104
function start_mysql() {
106
- echo " Starting MySQL server ..."
107
-
108
- # Exit if MySQL is not on $PATH
109
- if [ -z " $( which mysqld) " ]; then
110
- echo " Could not start MySQL because it is not installed on the system's \$ PATH"
111
- fi
112
-
113
- # Check if MySQL is already running
114
- if [ -n " $( is_mysql_running) " ]; then
115
- echo " MySQL appears to already be running on PORT=${MYSQL_PORT} "
116
- return
117
- fi
118
-
119
- locals needs_pwd=" $( needs_sudo_pwd) "
120
- # Try running in sudo or not
121
- if [ -n ${needs_pwd} ]; then
122
- sudo -n mysqld &
123
- SUDO_MYSQL=true
124
- else
125
- mysqld &
126
- fi
127
-
128
- # If MySQL is not running
129
- if [ -z " $( is_mysql_running) " ]; then
130
- # Try running with sudo (and passwd prompt)
131
- if [ ! $SUDO_MYSQL ]; then
132
- echo " Please enter sudo password for MySQL"
133
- sudo mysqld &
134
- fi
135
- else
136
- echo " MySQL is up and running"
137
- fi
138
-
139
- # After all our different tries is MySQL up ?
140
- if [ -n " $( is_mysql_running) " ]; then
141
- MYSQL_STARTED=true
142
- fi
105
+ echo " Starting MySQL server ..."
106
+
107
+ # Commands
108
+ local sudo_mysql=" mysqld --user=root"
109
+ local mysql=" mysqld"
110
+
111
+ # Exit if MySQL is not on $PATH
112
+ if [ -z " $( which mysqld) " ]; then
113
+ echo " Could not start MySQL because it is not installed on the system's \$ PATH"
114
+ fi
115
+
116
+ # Specify that MySQL was started by this script
117
+ # And thus we handle it's termination
118
+ MYSQL_STARTED=true
119
+
120
+ echo " MySQL RUNNING = $( is_mysql_running) "
121
+ # Check if MySQL is already running
122
+ if [ -n " $( is_mysql_running) " ]; then
123
+ echo " MySQL appears to already be running on PORT=${MYSQL_PORT} "
124
+ return
125
+ fi
126
+
127
+ locals needs_pwd=" $( needs_sudo_pwd) "
128
+ # Try running in sudo or not
129
+ if [ -n ${needs_pwd} ]; then
130
+ sudo -n ${sudo_mysql} &
131
+ SUDO_MYSQL=true
132
+ else
133
+ ${mysql} &
134
+ fi
135
+
136
+ # If MySQL is not running
137
+ if [ -z " $( is_mysql_running) " ]; then
138
+ # Try running with sudo (and passwd prompt)
139
+ if [ ! $SUDO_MYSQL ]; then
140
+ echo " Please enter sudo password for MySQL"
141
+ sudo ${sudo_mysql} &
142
+ SUDO_MYSQL=true
143
+ fi
144
+ else
145
+ echo " MySQL is up and running"
146
+ fi
147
+
148
+ # After all our different tries is MySQL up ?
149
+ if [ -n " $( is_mysql_running) " ]; then
150
+ MYSQL_STARTED=true
151
+ fi
143
152
}
144
153
145
154
# Stop MySQL started by "start_mysql"
146
155
function stop_mysql() {
147
- echo " Killing MySQL"
148
- # MySQL wasn't started by this script
149
- # or is already dead
150
- if [ ! ${MYSQL_STARTED} || -z " $( is_mysql_running) " ]; then
151
- # So do nothing
152
- return
153
- fi
154
-
155
- # Force kill MySQL
156
- killall -s KILL mysqld
156
+ echo " Killing MySQL"
157
+
158
+ # MySQL wasn't started by this script
159
+ # or is already dead
160
+ if [ ! $MYSQL_STARTED ] || [ -z " $( is_mysql_running) " ]; then
161
+ echo " No need to kill MySQL, it is not running"
162
+ # So do nothing
163
+ return
164
+ fi
165
+
166
+ # Force kill MySQL
167
+ if [ $SUDO_MYSQL ]; then
168
+ echo " Killing Sudo MySQL"
169
+ sudo -n killall -s KILL mysqld
170
+ else
171
+ killall -s KILL mysqld
172
+ fi
157
173
}
158
174
159
175
# Wait for a process or group of processes
160
176
function anywait() {
161
- for pid in " $@ " ; do
162
- while kill -0 " $pid " & > /dev/null; do
163
- sleep 0.5
164
- done
165
- done
177
+ for pid in " $@ " ; do
178
+ while kill -0 " $pid " & > /dev/null; do
179
+ sleep 0.5
180
+ done
181
+ done
166
182
}
167
183
168
184
function cleanup {
169
- # Kill Apache
170
- if [[ -f ${PID_FILE} ]]; then
171
- echo " Killed process"
172
- # Kill process and all children
173
- /bin/kill -s KILL -$( cat ${PID_FILE} )
174
- fi
175
-
176
- # Kill MySQL
177
- stop_mysql
178
-
179
- # Remove folder on exit
180
- echo " Cleaning up ${FOLDER} "
181
- rm -rf ${FOLDER}
185
+ # Kill Apache
186
+ if [[ -f ${PID_FILE} ]]; then
187
+ echo " Killed process"
188
+ # Kill process and all children
189
+ kill -KILL -- -$( cat ${PID_FILE} )
190
+ fi
191
+
192
+ # Kill MySQL
193
+ stop_mysql
194
+
195
+ # Remove folder on exit
196
+ echo " Cleaning up ${FOLDER} "
197
+ rm -rf ${FOLDER}
198
+ exit
182
199
}
183
200
184
201
# Cleanup when killed
185
- trap cleanup EXIT INT KILL
202
+ trap cleanup EXIT INT KILL TERM
186
203
187
204
# Run MySQL
188
205
start_mysql
@@ -200,5 +217,5 @@ echo "Waiting for Apache2 process : ${PID}"
200
217
anywait ${PID}
201
218
echo " Apache is dead (pid=${PID} )"
202
219
203
- # Cleanup on exit
204
- cleanup
220
+
221
+
0 commit comments