Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Was fehlt?

Es liegt in der Natur der Sache: Ein Wiki ist niemals fertig. Wir geben uns große Mühe, mit der Entwicklung Schritt zu halten; lassen Supportanfragen direkt in neue Artikel einfließen … aber auch wir sind nicht perfekt. Wenn du hier nicht fündig wirst: Nicht schmollen - Bescheid sagen! Unter hallo@uberspace.de steht dir unser Team gerne bereit. Hand drauf!

system:collection_of_run_scripts
Alle Anleitungen in diesem Wiki beziehen sich auf Uberspace 6. Die Dokumentation für U7 findest du im neuen Manual. Im Lab findest du außerdem von Usern erstellte Anleitungen für verschiedene Projekte.

run-Skripte für die daemontools

Mit der Zeit haben wir schon so einiges an run-Skripten gesehen und bei nicht wenigen mitgeholfen. Auf dieser Seite wollen wir das erworbene Wissen sammeln und allgemein verfügbar machen.

murmur / mumble

Wichtig ist hier der Parameter -fg ohne den murmur in den Hintergrund geht und damit dann nicht richtig unter den daemontools funktioniert.

#!/bin/sh
cd ~/murmur
exec ~/murmur/murmur.x86 -fg -ini ~/murmur/murmur.ini 2>&1

prosody

Hier müssen in der Config die richtigen Einstellungen gesetzt werden. Zunächst muss im Module-Block das Modul posix geladen werden:

modules_enabled = {
                "posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
};

Dann muss prosody angewiesen werden sich nicht von dem es kontrollierenden Prozess zu trennen:

daemonize = false; -- IMPORTANT for daemontools! DO NOT EDIT!

Außerdem sollten die Interfaces beschränkt werden, da sich dies sehr positiv auf die Performance und Erreichbarkeit auswirkt:

-- use the IP-addresses of your uberspace here!!
interfaces = { "95.143.172.58" , "2001:1a50:11:0:5f:8f:ac:3a" }

Und schließlich muss es angewiesen werden sich nicht selbst ums Logging zu kümmern, sondern das alles an stdout zu schicken, wo multilog es abgreift:

log = {
        "*console"; -- Log to the console, useful for debugging with daemonize=false -- IMPORTANT for daemontools! DO NOT EDIT!
}

Das run-Skript kann dann so aussehen (wenn prosody nach ~/prosody/ installiert wurde):

#!/bin/sh
 
# These environment variables are sometimes needed by the running daemons
export USER=xmpptest
export HOME=/home/xmpptest
 
# Include the user-specific profile
. $HOME/.bash_profile
 
# Now let's go!
cd $HOME/prosody/
exec $HOME/prosody/bin/prosody 2>&1

ngircd

#!/bin/sh
 
# These environment variables are sometimes needed by the running daemons
export USER=irctest
export HOME=/home/irctest
 
# Include the user-specific profile
. $HOME/.bash_profile
 
# Now let's go!
exec /$HOME/.toast/armed/bin/ngircd --nodaemon 2>&1

btsync

#!/bin/sh
 
# These environment variables are sometimes needed by the running daemons
export USER=btstest
export HOME=/home/$USER
 
# Include the user-specific profile
. $HOME/.bash_profile
 
# Now let's go!
exec $HOME/bin/btsync --nodaemon --config $HOME/bin/btsync.config 2>&1

git-daemon

Von einem unserer User gibt es auch ein run-Skript für git-daemon.

sidekiq

interessant in Verbindung mit gitlab

#!/bin/sh
 
# These environment variables are sometimes needed by the running daemons
export USER= gitlabtest
export HOME=/home/gitlabtest
 
# Include the user-specific profile
. $HOME/.bash_profile
 
export RAILS_ENV="production"
export GITLAB_PATH="$HOME/gitlab"
 
# Now let's go!
cd $GITLAB_PATH/
app_root=$(pwd)
sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid"
 
exec bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e $RAILS_ENV -P $sidekiq_pidfile 2>&1

unicorn

interessant in Verbindung mit gitlab

#!/bin/sh
 
# These environment variables are sometimes needed by the running daemons
export USER= gitlabtest
export HOME=/home/gitlabtest
 
# Include the user-specific profile
. $HOME/.bash_profile
 
# Now let's go!
export RAILS_ENV="production"
export GITLAB_PATH="$HOME/gitlab"
 
cd $GITLAB_PATH/
app_root=$(pwd)
unicorn_config="$app_root/config/unicorn.rb"
 
exec bundle exec unicorn_rails -c $unicorn_config -E $RAILS_ENV 2>&1

Teamspeak

Dieses Beispiel geht davon aus, dass der Teamspeak-Tarball direkt im Home-Verzeichnis entpackt wurde und teamspeak3-server_linux-amd64 heißt. Bei abweichenden Pfaden muss das natürlich angepasst werden. Der Username aus dem Beispiel muss selbstverständlich immer angepasst werden.

#!/bin/sh
 
# These environment variables are sometimes needed by the running daemons
export USER=foobar
export HOME=/home/foobar
 
# Include the user-specific profile
. $HOME/.bash_profile
 
# Now let's go!
export TSDIR=$HOME/teamspeak3-server_linux-amd64
export LD_LIBRARY_PATH="$TSDIR:$LD_LIBRARY_PATH"
cd $TSDIR
exec ./ts3server_linux_amd64 inifile=ts3server.ini 2>&1
system/collection_of_run_scripts.txt · Zuletzt geändert: 2016/06/06 15:31 von uber