Commit 38e1816c9fbc079f847242d8b5c59f233604c698
1 parent
e0131ecf
Exists in
master
and in
29 other branches
Support Lenny → Squeeze upgrades
Showing
2 changed files
with
34 additions
and
5 deletions
Show diff stats
debian/changelog
... | ... | @@ -7,8 +7,13 @@ noosfero (0.35.2~1) unstable; urgency=low |
7 | 7 | mail-transport-agent. |
8 | 8 | * /usr/share/dbconfig-common/scripts/noosfero/install/pgsql: run db:migrate |
9 | 9 | just after db:schema:load. |
10 | + * etc/init.d/noosfero: forward fix for the Lenny → Squeeze upgrade. In | |
11 | + Squeeze, `rails` is an empty package that depends on rails-ruby1.8, but | |
12 | + rails-ruby1.8 is only unpacked *after* noosfero prerm runs. This way, the | |
13 | + initscript must be able to stop the services without any of the Rails | |
14 | + libraries available. | |
10 | 15 | |
11 | - -- Antonio Terceiro <terceiro@colivre.coop.br> Wed, 29 Feb 2012 15:22:48 -0300 | |
16 | + -- Antonio Terceiro <terceiro@colivre.coop.br> Thu, 01 Mar 2012 14:37:15 -0300 | |
12 | 17 | |
13 | 18 | noosfero (0.35.1) unstable; urgency=low |
14 | 19 | ... | ... |
script/production
... | ... | @@ -37,10 +37,34 @@ do_start() { |
37 | 37 | } |
38 | 38 | |
39 | 39 | do_stop() { |
40 | - mongrel_rails cluster::stop | |
41 | - ./script/delayed_job stop | |
42 | - ./script/feed-updater stop | |
43 | - ./script/ferret_server -e $RAILS_ENV stop | |
40 | + | |
41 | + # During Debian upgrades, it is possible that rails is not available (e.g. | |
42 | + # Lenny -> Squeeze), so the programs below might fail. If they do, we fall | |
43 | + # back to stopping the daemons by manually reading their PID files, killing | |
44 | + # them and wiping the PID files. | |
45 | + | |
46 | + mongrel_rails cluster::stop || | |
47 | + stop_via_pid_file tmp/pids/mongrel.*.pid | |
48 | + | |
49 | + ./script/delayed_job stop || | |
50 | + stop_via_pid_file tmp/pids/delayed_job.pid | |
51 | + | |
52 | + ./script/feed-updater stop || | |
53 | + stop_via_pid_file tmp/pids/feed-updater.default.pid | |
54 | + | |
55 | + ./script/ferret_server -e $RAILS_ENV stop || | |
56 | + stop_via_pid_file tmp/pids/ferret.production.pid | |
57 | +} | |
58 | + | |
59 | +stop_via_pid_file() { | |
60 | + for pidfile in $@; do | |
61 | + if [ -e "$pidfile" ]; then | |
62 | + pid=$(cat $pidfile) | |
63 | + echo "Sentign TERM signal to stop $pid ..." | |
64 | + kill -TERM "$pid" | |
65 | + rm -f $pidfile | |
66 | + fi | |
67 | + done | |
44 | 68 | } |
45 | 69 | |
46 | 70 | environments_loop() { | ... | ... |