@@ -22,13 +22,13 @@ CONF="apache2.conf"
2222# Platform specific apache extras
2323EXTRA_CONF=' '
2424if [[ $platform == ' Linux' ]]; then
25- EXTRA_CONF="
25+ EXTRA_CONF="
2626# Include module configuration:
2727Include /etc/apache2/mods-enabled/*.load
2828Include /etc/apache2/mods-enabled/*.conf
2929"
3030elif [[ $platform == ' Darwin' ]]; then
31- EXTRA_CONF="
31+ EXTRA_CONF="
3232# Modules
3333$( cat /etc/apache2/httpd.conf | grep LoadModule | sed ' s/libexec/\/usr\/libexec/g' )
3434LoadModule php5_module /usr/libexec/apache2/libphp5.so
3737
3838# Include phpmyadmin only if there
3939if [[ -f " /etc/apache2/conf.d/phpmyadmin.conf" ]]; then
40- EXTRA_CONF+="
40+ EXTRA_CONF+="
4141Include /etc/apache2/conf.d/phpmyadmin.conf
4242"
4343fi
@@ -64,9 +64,9 @@ MaxSpareServers 1
6464# Serve our workspace
6565DocumentRoot "${WORKSPACE} "
6666<Directory />
67- AllowOverride all
68- Order allow,deny
69- Allow from all
67+ AllowOverride all
68+ Order allow,deny
69+ Allow from all
7070</Directory>
7171
7272AddType application/x-httpd-php .php
@@ -83,106 +83,123 @@ MYSQL_STARTED=false
8383MYSQL_PORT=3306
8484
8585function 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
9292}
9393
9494# Echoes sudo if the system supports sudo without password for current user (codebox.io boxes for example)
9595function 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
102101}
103102
104103# Start mysql and set SUDO_MYSQL
105104function 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
143152}
144153
145154# Stop MySQL started by "start_mysql"
146155function 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
157173}
158174
159175# Wait for a process or group of processes
160176function 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
166182}
167183
168184function 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
182199}
183200
184201# Cleanup when killed
185- trap cleanup EXIT INT KILL
202+ trap cleanup EXIT INT KILL TERM
186203
187204# Run MySQL
188205start_mysql
@@ -200,5 +217,5 @@ echo "Waiting for Apache2 process : ${PID}"
200217anywait ${PID}
201218echo " Apache is dead (pid=${PID} )"
202219
203- # Cleanup on exit
204- cleanup
220+
221+
0 commit comments