noosfero
3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#! /bin/sh
### BEGIN INIT INFO
# Provides: noosfero
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Should-Start: postgresql
# Should-Stop: postgresql
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Noosfero
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
# Sample init.d script for noosfero.
#
# This script was based on the skeleton init.d script present in a Debian
# GNU/Linux system (sid), on Sat Feb 16 11:12:03 BRT 2008. It must be placed in
# /etc/init.d/ (or whatever place your system uses for startup scripts), and you must create a file /etc/default/noosfero defining the variable
#
# Author: Antonio Terceiro <terceiro@colivre.coop.br>
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Noosfero web platform"
NAME=noosfero
SCRIPTNAME=/etc/init.d/$NAME
# default values
NOOSFERO_DIR=/var/lib/noosfero/current
NOOSFERO_USER=noosfero
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
if [ -e /lib/init/vars.sh ]; then
. /lib/init/vars.sh
fi
if [ -z "$NOOSFERO_DIR" ] || [ -z "$NOOSFERO_USER" ]; then
echo "NOOSFERO_DIR or NOOSFERO_USER not defined, noosfero not being started."
echo "Both variables must be defined in /etc/default/noosfero"
exit 0
fi
if test -x /usr/sbin/noosfero-check-dbconfig ; then
if ! /usr/sbin/noosfero-check-dbconfig; then
echo "Noosfero database access not configured, service disabled."
exit 0
fi
fi
######################
main_script() {
if [ "$NOOSFERO_USER" != "$USER" ]; then
su $NOOSFERO_USER -l -c "cd $NOOSFERO_DIR && ./script/production $1"
else
cd $NOOSFERO_DIR
./script/production $1
fi
}
do_setup() {
# PID directories
if [ ! -d /var/run/noosfero ]; then
mkdir /var/run/noosfero
chown $NOOSFERO_USER:root /var/run/noosfero
chmod 755 /var/run/noosfero
fi
# Noosfero logs
if [ ! -d /var/log/noosfero ]; then
mkdir /var/log/noosfero
chown $NOOSFERO_USER:root /var/log/noosfero
chmod 750 /var/log/noosfero
fi
# Noosfero tmp directory
if [ ! -d /var/tmp/noosfero ]; then
mkdir /var/tmp/noosfero
chown $NOOSFERO_USER:root /var/tmp/noosfero
chmod 750 /var/tmp/noosfero
fi
# symlink the directories into Noosfero directory
if [ ! -e $NOOSFERO_DIR/tmp ]; then
ln -s /var/tmp/noosfero $NOOSFERO_DIR/tmp
fi
if [ ! -e $NOOSFERO_DIR/tmp/pids ]; then
ln -s /var/run/noosfero $NOOSFERO_DIR/tmp/pids
fi
if [ ! -e $NOOSFERO_DIR/log ]; then
ln -s /var/log/noosfero $NOOSFERO_DIR/log
fi
}
do_start() {
if ! running; then
do_setup
# actually start the service
main_script start
else
echo 'Noosfero is already running, nothing to do...'
fi
}
do_stop() {
if running; then
main_script stop
else
echo 'Noosfero is already stopped, nothing to do...'
fi
}
do_restart() {
if running; then
main_script restart
else
do_start
fi
}
running(){
main_script running
}
case "$1" in
start|stop|restart|setup)
do_$1
;;
force-reload)
do_restart
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|setup}" >&2
exit 3
;;
esac
: