Skip to content
Extraits de code Groupes Projets
Valider b1423e9e rédigé par Alec Leamas's avatar Alec Leamas
Parcourir les fichiers

Firts try, nothing tested

parent 815e8466
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -7,6 +7,7 @@ default: ...@@ -7,6 +7,7 @@ default:
debug: false debug: false
socket_debug : false socket_debug : false
socket_host: 0.0.0.0 socket_host: 0.0.0.0
socket_pidfile: log/diaspora-wsd.pid
socket_port: 8080 socket_port: 8080
socket_collection_name: 'websocket' socket_collection_name: 'websocket'
pubsub_server: 'https://pubsubhubbub.appspot.com/' pubsub_server: 'https://pubsubhubbub.appspot.com/'
......
...@@ -24,6 +24,8 @@ cd /usr/share/diaspora/master ...@@ -24,6 +24,8 @@ cd /usr/share/diaspora/master
test -e config/app_config.yml || test -e config/app_config.yml ||
cp config/app_config.yml.example config/app_config.yml cp config/app_config.yml.example config/app_config.yml
sed -i '/socket_pidfile:/s|:.*|: /var/run/diaspora/diaspora-wsd.pid|' \
config/app_config.yml
if rake db:seed:dev; then if rake db:seed:dev; then
echo "Database config OK, new user tom/evankorth in place" echo "Database config OK, new user tom/evankorth in place"
......
...@@ -33,7 +33,7 @@ cd /usr/share/diaspora ...@@ -33,7 +33,7 @@ cd /usr/share/diaspora
RETVAL=0 RETVAL=0
prog="Diaspora websocket server" prog="Diaspora websocket server"
exec="script/websocket_server.rb" exec="script/websocket_server.rb"
pidfile="/var/run/diaspora-wsd" pidfile="/var/run/diaspora/diaspora-wsd"
lockfile="/var/lock/subsys/diaspora-wsd" lockfile="/var/lock/subsys/diaspora-wsd"
logfile=/var/log/diaspora-wsd.log logfile=/var/log/diaspora-wsd.log
......
...@@ -77,6 +77,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp ...@@ -77,6 +77,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp
cp %SOURCE2 $RPM_BUILD_ROOT/%{_datadir}/diaspora cp %SOURCE2 $RPM_BUILD_ROOT/%{_datadir}/diaspora
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/log/diaspora mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/log/diaspora
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/diaspora
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp
...@@ -94,6 +95,8 @@ find -L $RPM_BUILD_ROOT/%{_datadir}/diaspora -type f \ ...@@ -94,6 +95,8 @@ find -L $RPM_BUILD_ROOT/%{_datadir}/diaspora -type f \
cat files >> dirs && mv -f dirs files cat files >> dirs && mv -f dirs files
sed -i -e '\|.*/master/config.ru"$|d' \ sed -i -e '\|.*/master/config.ru"$|d' \
-e '\|.*/master/config/environment.rb"$|d' \ -e '\|.*/master/config/environment.rb"$|d' \
-e '\|.*/run/diaspora"$|d' \
-e '\|.*/pkg/fedora/dist"$|d' \
-e 's|%{buildroot}||' -e 's|//|/|' -e '/""/d' \ -e 's|%{buildroot}||' -e 's|//|/|' -e '/""/d' \
files files
...@@ -101,6 +104,7 @@ sed -i -e '\|.*/master/config.ru"$|d' \ ...@@ -101,6 +104,7 @@ sed -i -e '\|.*/master/config.ru"$|d' \
%post wsd %post wsd
/sbin/chkconfig --add diaspora-wsd || : /sbin/chkconfig --add diaspora-wsd || :
%preun wsd %preun wsd
if [ $1 -eq 0 ] ; then if [ $1 -eq 0 ] ; then
service diaspora-wsd stop &>/dev/null || : service diaspora-wsd stop &>/dev/null || :
...@@ -117,9 +121,11 @@ rm -fr $RPM_BUILD_ROOT ...@@ -117,9 +121,11 @@ rm -fr $RPM_BUILD_ROOT
%doc AUTHORS README.md GNU-AGPL-3.0 COPYRIGHT README-Fedora.md %doc AUTHORS README.md GNU-AGPL-3.0 COPYRIGHT README-Fedora.md
%attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/config.ru %attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/config.ru
%attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/config/environment.rb %attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/config/environment.rb
%attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/pkg/fedora/dist
%attr(-, diaspora, diaspora) %{_localstatedir}/log/diaspora %attr(-, diaspora, diaspora) %{_localstatedir}/log/diaspora
%attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/uploads %attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/uploads
%attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/tmp %attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/tmp
%attr(-, diaspora, diaspora) %{_localstatedir}/run/diaspora
%{_datadir}/diaspora/master/tmp %{_datadir}/diaspora/master/tmp
%{_datadir}/diaspora/master/public/uploads %{_datadir}/diaspora/master/public/uploads
......
...@@ -41,8 +41,8 @@ cp master/pkg/ubuntu/diaspora-setup . ...@@ -41,8 +41,8 @@ cp master/pkg/ubuntu/diaspora-setup .
mkdir -p /var/log/diaspora mkdir -p /var/log/diaspora
mkdir -p /var/lib/diaspora/uploads mkdir -p /var/lib/diaspora/uploads
mkdir -p /var/lib/diaspora/tmp mkdir -p /var/lib/diaspora/tmp
mkdir -p /var/run/diaspora
mkdir -p /etc/diaspora mkdir -p /etc/diaspora
mkdir -p /usr/share/diaspora/master/pkg/ubuntu/dist
ln -sf /var/log/diaspora ./master/log ln -sf /var/log/diaspora ./master/log
cp master/config/app_config.yml.example /etc/diaspora/app_config.yml cp master/config/app_config.yml.example /etc/diaspora/app_config.yml
...@@ -65,5 +65,6 @@ chown diaspora:diaspora /var/log/diaspora ...@@ -65,5 +65,6 @@ chown diaspora:diaspora /var/log/diaspora
chown diaspora:diaspora /var/lib/diaspora/uploads chown diaspora:diaspora /var/lib/diaspora/uploads
chown diaspora:diaspora /var/lib/diaspora/tmp chown diaspora:diaspora /var/lib/diaspora/tmp
chown diaspora:diaspora /var/lib/diaspora chown diaspora:diaspora /var/lib/diaspora
chown diaspora:diaspora /var/run/diaspora
chown diaspora:diaspora /usr/share/diaspora/master/pkg/ubuntu/dist chown diaspora:diaspora /usr/share/diaspora/master/pkg/ubuntu/dist
...@@ -27,6 +27,8 @@ cd /usr/share/diaspora/master ...@@ -27,6 +27,8 @@ cd /usr/share/diaspora/master
test -e config/app_config.yml || test -e config/app_config.yml ||
cp config/app_config.yml.example config/app_config.yml cp config/app_config.yml.example config/app_config.yml
sed -i '/socket_pidfile:/s|:.*|: /var/run/diaspora/diaspora-wsd.pid|' \
config/app_config.yml
if rake db:seed:dev; then if rake db:seed:dev; then
echo "Database config OK, new user tom/evankorth in place" echo "Database config OK, new user tom/evankorth in place"
......
#!/bin/bash #! /bin/sh
#
# /etc/rc.d/init.d/diaspora-wsd
#
# SHOULD start the diaspora websocket daemon, but it doesn't. No way.
#
# chkconfig: - 80 80
# description: Diaspora websocket daemon
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: diaspora-wsd # Provides: diaspora-wsd
# Required-Start: $local_fs $network # Required-Start: $remote_fs $syslog
# Required-Stop: $local_fs $network # Required-Stop: $remote_fs $syslog
# Should-Start: $remote_fs # Default-Start: 2 3 4 5
# Should-Stop: $remote_fs # Default-Stop: 0 1 6
# Default-Start: # Short-Description: diaspora websocket daemon
# Default-Stop: 0 1 2 3 4 5 6 # Description: The diaspora websocket service provider, normally
# Short-Description: start and stop Diaspora websocket server listening on port 8080
# Description: The websocket server provides websocket services for
# diaspora.
### END INIT INFO ### END INIT INFO
# Source function library. # Author: Alec leamas <leamas.alec@gmail.com>
. /etc/init.d/functions
if [ -f /etc/sysconfig/diaspora-wsd -a $UID -eq 0 ]; then PATH=/usr/sbin:/usr/bin
. /etc/sysconfig/diaspora-wsd DESC="Websocket server for diaspora clients"
fi NAME='diaspora-wsd'
DAEMON='/usr/share/diaspora/master/script/websocket_server.rb'
DAEMON_ARGS=""
PIDFILE=/var/run/diaspora/diaspora-wsd.pid
SCRIPTNAME=/etc/init.d/diaspora-wsd
# Note: this line is patched by installation scripts. [ -x "$DAEMON" ] || exit 0
cd /usr/share/diaspora vncvi
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
RETVAL=0 # Load the VERBOSE setting and other rcS variables
prog="Diaspora websocket server" . /lib/init/vars.sh
exec="script/websocket_server.rb"
pidfile="/var/run/diaspora-wsd"
lockfile="/var/lock/subsys/diaspora-wsd"
logfile=/var/log/diaspora-wsd.log
[ -n "$OPTIONS" ] && OPTIONS=" $OPTIONS" # Define LSB log_* functions.
ruby_cmd="ruby -C $PWD $exec$OPTIONS" # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
start() { #
[ $UID -eq 0 ] || exit 4 # Function that starts the daemon/service
[ -f $exec ] || exit 5 #
do_start()
echo -n $"Starting $prog: " {
daemon --pidfile $pidfile "$ruby_cmd >>$logfile 2>&1 &" # Return
RETVAL=$? # 0 if daemon has been started
echo # 1 if daemon was already running
if test $RETVAL = 0; then # 2 if daemon could not be started
touch $lockfile start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
pgrep -f "$ruby_cmd" > $pidfile || { || return 1
echo "Warning: cannot find running diaspora-webserver" start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
exit 7 $DAEMON_ARGS \
} || return 2
fi # Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
} }
stop() { #
[ $UID -eq 0 ] || exit 4 # Function that stops the daemon/service
echo -n $"Stopping $prog: " #
killproc -p $pidfile $exec do_stop()
RETVAL=$? {
[ $RETVAL -eq 0 ] && rm -f $lockfile # Return
echo # 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
} }
# #
# See how we were called. # Function that sends a SIGHUP to the daemon/service
# #
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
return 0
}
case "$1" in case "$1" in
start) start)
start [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;; ;;
stop) stop)
stop [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
;; do_stop
force-reload|restart) case "$?" in
stop 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
sleep 1 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
start esac
RETVAL=$?
;;
condrestart|try-restart)
if [ -f $lockfile ]; then
stop
sleep 3
start
fi
;; ;;
status) status)
status -p $pidfile $exec status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
RETVAL=$? ;;
#reload|force-reload)
#
# If do_reload() is not implemented then leave this commented out
# and leave 'force-reload' as an alias for 'restart'.
#
#log_daemon_msg "Reloading $DESC" "$NAME"
#do_reload
#log_end_msg $?
#;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;; ;;
*) *)
echo $"Usage: $0 {condrestart|try-restart|start|stop|restart|force-reload|status}" #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
RETVAL=2 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
[ "$1" = 'usage' ] && RETVAL=0 exit 3
;;
esac esac
exit $RETVAL :
...@@ -5,6 +5,27 @@ ...@@ -5,6 +5,27 @@
require File.dirname(__FILE__) + '/../config/environment' require File.dirname(__FILE__) + '/../config/environment'
require File.dirname(__FILE__) + '/../lib/diaspora/websocket' require File.dirname(__FILE__) + '/../lib/diaspora/websocket'
at_exit do
begin
File.delete(PID_FILE)
rescue
puts 'Cannot remove pidfile: ' + (PID_FILE ? PID_FILE : "NIL")
end
end
def write_pidfile
begin
f = File.open(PID_FILE, "w")
f.write(Process.pid)
f.close
rescue => e
puts "Can't write to pidfile!"
puts e.inspect
puts e.backtrace
end
end
CHANNEL = Magent::GenericChannel.new('websocket') CHANNEL = Magent::GenericChannel.new('websocket')
def process_message def process_message
if CHANNEL.queue_count > 0 if CHANNEL.queue_count > 0
...@@ -37,6 +58,8 @@ begin ...@@ -37,6 +58,8 @@ begin
} }
end end
PID_FILE = APP_CONFIG[:socket_pidfile]
write_pidfile
puts "Websocket server started." puts "Websocket server started."
process_message process_message
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter