Skript zum Starten von lineakd
Skript zum Starten von lineakd
Hi !
Zum Starten von lineakd soll folgendes Kommando ausgeführt werden :
/usr/bin/lineakd -b
Wie sieht ein Skript zum automatischen Start von lineakd aus ? An welche Stelle ansetzen ?
Ich habe versucht, einen Skript zu schreiben, mit update-rc.d, mit webmin, mit einem
Skriptmodell, geht alles nicht .... Jedesmal muss ich eine Konsole aufmachen, /
usr/bin/lineakd -b eintippen .... Ich hätte es gern, wenn das Programm beim Booten
automatisch starten würde
und dies unabhängig vom Window Manager oder von der Session, die ich starte.
Könnte präzise Hilfe gut gebrauchen.....
Jyoti
Zum Starten von lineakd soll folgendes Kommando ausgeführt werden :
/usr/bin/lineakd -b
Wie sieht ein Skript zum automatischen Start von lineakd aus ? An welche Stelle ansetzen ?
Ich habe versucht, einen Skript zu schreiben, mit update-rc.d, mit webmin, mit einem
Skriptmodell, geht alles nicht .... Jedesmal muss ich eine Konsole aufmachen, /
usr/bin/lineakd -b eintippen .... Ich hätte es gern, wenn das Programm beim Booten
automatisch starten würde
und dies unabhängig vom Window Manager oder von der Session, die ich starte.
Könnte präzise Hilfe gut gebrauchen.....
Jyoti
http://www.debianforum.de/forum/viewtop ... nit+script
Dabei wird das Script dann beim Booten gestartet.
edit: Schau mal unter /etc/init.d/ nach, dort gibts auch gute "Beispiele".
Dabei wird das Script dann beim Booten gestartet.
edit: Schau mal unter /etc/init.d/ nach, dort gibts auch gute "Beispiele".
[ jabber ] chimerer@amessage.de
Ah, ich seh gerade es gibt sogar ein vorgefertigtes Skelett, dass du nur noch abändern musst unter /etc/init.d/skeleton
[ jabber ] chimerer@amessage.de
Code: Alles auswählen
#! /bin/sh
#
# skeleton example file to build /etc/init.d/ scripts.
# This file should be used to construct scripts for /etc/init.d.
#
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
# Modified for Debian GNU/Linux
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version: @(#)skeleton 1.9.1 08-Apr-2002 miquels@cistron.nl
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON="/usr/bin/lineakd -b"
NAME=lineakd
DESC="lineak daemon"
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "."
;;
#reload)
#
# If the daemon can reload its config files on the fly
# for example by sending it SIGHUP, do it here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this a do-nothing entry.
#
# echo -n "Reloading $DESC configuration..."
# start-stop-daemon --stop --signal 1 --quiet --pidfile \
# /var/run/$NAME.pid --exec $DAEMON
# echo "done."
#;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: $NAME"
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
echo "."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
[ jabber ] chimerer@amessage.de
Ist egal wie du es benennst. Der Übersicht halber wäre lineakd allerdings nicht schlecht.
Also:
1. Umbennenen in lineakd
2. ausführbar machen mit chmod +x lineakd
3. nach /etc/init.d/ kopieren
4. cd /etc/rc2.d
5. ln -s ../init.d/lineakd SXXlineakd
Wobei XX eine Zahl ist, die in dem rc2.d Verzeichnis noch nicht verwendet wird.
6. fertig
Beim nächsten Booten sollte lineakd mitgestartet werden.
Also:
1. Umbennenen in lineakd
2. ausführbar machen mit chmod +x lineakd
3. nach /etc/init.d/ kopieren
4. cd /etc/rc2.d
5. ln -s ../init.d/lineakd SXXlineakd
Wobei XX eine Zahl ist, die in dem rc2.d Verzeichnis noch nicht verwendet wird.
6. fertig
Beim nächsten Booten sollte lineakd mitgestartet werden.
[ jabber ] chimerer@amessage.de
Ok, sorry. Mein Fehler hab nicht nachgeguckt für was der Daemon eigentlich ist. Es steht auch in der Dokumentation, dass man den Befehl einfach in die .xsession schreiben kann.
Also vergiss das Ganze mit dem Script. Öffne die .xsession in deinem Homeverzeichnis. Und füge den Befehl /usr/bin/lineakd -b hinzu. Bei mir würde das so aussehen:
Also vergiss das Ganze mit dem Script. Öffne die .xsession in deinem Homeverzeichnis. Und füge den Befehl /usr/bin/lineakd -b hinzu. Bei mir würde das so aussehen:
Code: Alles auswählen
/sbin/hddtemp -d /dev/hda &
gkrellm -w &
wmxmms &
nohup idesk > /dev/null &
/usr/bin/lineakd -b &
exec fluxbox
[ jabber ] chimerer@amessage.de
Also, bei mir sieht /home/claude/.xsession so aus :
# ---- language-env DON'T MODIFY THIS LINE!
# set LANG
LANG=fr_FR@euro
export LANG
if [ -x "$WINDOW_MANAGER" ]; then
realstartup=$WINDOW_MANAGER
elif [ -x /usr/bin/x-session-manager ]; then
realstartup=x-session-manager
elif [ -x /usr/bin/x-window-manager ]; then
realstartup=x-window-manager
elif [ -x /usr/bin/x-terminal-emulator ]; then
realstartup=x-terminal-emulator
fi
exec $realstartup
# ---- language-env end DON'T MODIFY THIS LINE!
Soll ich das Kommando /usr/lbin/lineakd -b einfach so unten hintippen ??
Ich hatte es versucht, hat nicht funktioniert , vielleicht hatte ich was vergessen ?
Jytoi
# ---- language-env DON'T MODIFY THIS LINE!
# set LANG
LANG=fr_FR@euro
export LANG
if [ -x "$WINDOW_MANAGER" ]; then
realstartup=$WINDOW_MANAGER
elif [ -x /usr/bin/x-session-manager ]; then
realstartup=x-session-manager
elif [ -x /usr/bin/x-window-manager ]; then
realstartup=x-window-manager
elif [ -x /usr/bin/x-terminal-emulator ]; then
realstartup=x-terminal-emulator
fi
exec $realstartup
# ---- language-env end DON'T MODIFY THIS LINE!
Soll ich das Kommando /usr/lbin/lineakd -b einfach so unten hintippen ??
Ich hatte es versucht, hat nicht funktioniert , vielleicht hatte ich was vergessen ?
Jytoi
Wie startest du denn normalerweise X, mit startx oder über einen Loginmanager wie KDM, GDM oder XDM?
Es ist nämlich so, dass .xsession nur für Loginmanager benutzt wird, für startx wird die Datei .xinitrc verwendet.
Sieht deine .xinitrc genauso aus?
Jedenfalls müsste dein Befehl in die vorletzte Zeile, also zwischen fi und exec $realstartup
fi
/usr/bin/lineakd -b &
exec $realstartup
Es ist nämlich so, dass .xsession nur für Loginmanager benutzt wird, für startx wird die Datei .xinitrc verwendet.
Sieht deine .xinitrc genauso aus?
Jedenfalls müsste dein Befehl in die vorletzte Zeile, also zwischen fi und exec $realstartup
fi
/usr/bin/lineakd -b &
exec $realstartup
[ jabber ] chimerer@amessage.de
Bei mir wird , je nach Laune, über gdm oder kdm eine Xsession gestartet .
Also, habe ich es mit ~/.Xsession versucht , hat aber nicht geklappt.
so sieht's aus :
# ---- language-env DON'T MODIFY THIS LINE!
# set LANG
LANG=fr_FR
export LANG
if [ -x "$WINDOW_MANAGER" ]; then
realstartup=$WINDOW_MANAGER
elif [ -x /usr/bin/x-session-manager ]; then
realstartup=x-session-manager
elif [ -x /usr/bin/x-window-manager ]; then
realstartup=x-window-manager
elif [ -x /usr/bin/x-terminal-emulator ]; then
realstartup=x-terminal-emulator
fi
/usr/bin/lineakd -b &
exec $realstartup
# ---- language-env end DON'T MODIFY THIS LINE!
besten dank für die Hilfe.
Jyoti
Also, habe ich es mit ~/.Xsession versucht , hat aber nicht geklappt.
so sieht's aus :
# ---- language-env DON'T MODIFY THIS LINE!
# set LANG
LANG=fr_FR
export LANG
if [ -x "$WINDOW_MANAGER" ]; then
realstartup=$WINDOW_MANAGER
elif [ -x /usr/bin/x-session-manager ]; then
realstartup=x-session-manager
elif [ -x /usr/bin/x-window-manager ]; then
realstartup=x-window-manager
elif [ -x /usr/bin/x-terminal-emulator ]; then
realstartup=x-terminal-emulator
fi
/usr/bin/lineakd -b &
exec $realstartup
# ---- language-env end DON'T MODIFY THIS LINE!
besten dank für die Hilfe.
Jyoti
Also laut Doku, liegt die binary in /usr/local/bin/. Versuchs mal damit.
Bist du dir auch sicher, dass du lineak schon konfiguriert hast etc?
Bist du dir auch sicher, dass du lineak schon konfiguriert hast etc?
[ jabber ] chimerer@amessage.de
Das Ding wurde mit #apt-get install lineakd installiert, also liegt die binary in /usr/bin
in usr/local/bin, sind wenige Sachen, da ich wenige Pakete manuell installiere.
Es ist schon halb konfiguriert, aber sonst habe ich ein paar Tasten gebunden, und dann apply , kein Problem, es geht, ich kann sowieso meine Konfig nur dann registrieren , wenn ich lineakd -b manuell gestartet habe.
Jyoti
in usr/local/bin, sind wenige Sachen, da ich wenige Pakete manuell installiere.
Es ist schon halb konfiguriert, aber sonst habe ich ein paar Tasten gebunden, und dann apply , kein Problem, es geht, ich kann sowieso meine Konfig nur dann registrieren , wenn ich lineakd -b manuell gestartet habe.
Jyoti
Hmm, dann sollte die .Xsession eigentlich auch funktionieren. Schau mal nach ob du noch ne .xsession Datei in deinem Homeverzeichnis hast, und wie sieht deine .xinitrc aus? Und welchen Windowmanager verwendest du, dann schreiben wir im Notfall einfach ne neue .xsession.
[ jabber ] chimerer@amessage.de
Bin im Moment nicht zu Hause. Aber: so viel ich weiß, ist in meinem Homeverzeichnis
nur eine .xsession - und ein Backup. /home/claude/.xsession
Im Root -Verzeichnis ist auch so eine Datei + Backup .
Als Windowmanager verwende ich entweder KDE , wenn ich mich ab und zu als Root einlogge, sonst Sawfish (Gnome-Session) oder auch wmaker , enlightenment. Deshalb wollte ich das Ding unabhängig vom Windowmanager gestartet haben.
Was xinitrc. anbelangt, kann ich erst heute Nachmittag eine Antwortgebe, wenn ich mal
wieder vorm Hauscomputer sitze.
Danke für die Hilfe und die Geduld.
Jyoti
nur eine .xsession - und ein Backup. /home/claude/.xsession
Im Root -Verzeichnis ist auch so eine Datei + Backup .
Als Windowmanager verwende ich entweder KDE , wenn ich mich ab und zu als Root einlogge, sonst Sawfish (Gnome-Session) oder auch wmaker , enlightenment. Deshalb wollte ich das Ding unabhängig vom Windowmanager gestartet haben.
Was xinitrc. anbelangt, kann ich erst heute Nachmittag eine Antwortgebe, wenn ich mal
wieder vorm Hauscomputer sitze.
Danke für die Hilfe und die Geduld.
Jyoti
Die Backup-Datei heißt .xsession? Dann könnte das vielleicht schon die Lösung sein.
[ jabber ] chimerer@amessage.de
Backup-Dateien entfernt. Geht immer noch nicht.
Du hast nach xinitrc gefragt. So sieht's aus :
#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
# /etc/X11/xinit/xinitrc
#
# global xinitrc file, used by all X sessions started by xinit (startx)
# invoke global X session script
. /etc/X11/Xsession
Uübrigens, es gibt doch eine andere Xsession-Datei
(andere als /root/.xsession oder /home/claude/.xsession
/etc/X11/Xsession :
#!/bin/sh
#
# /etc/X11/Xsession
#
# global Xsession file -- used by display managers and xinit (startx)
set -e
message () {
# pretty-print messages of arbitrary length
echo "$*" | fold -s -w ${COLUMNS:-80} >&2;
}
message_nonl () {
# pretty-print messages of arbitrary length (no trailing newline)
echo -n "$*" | fold -s -w ${COLUMNS:-80} >&2;
}
errormsg () {
# exit script with error
message "$*"
exit 1;
}
internal_errormsg () {
# exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message
message "$*"
message "Please report the package name, version, and the text of the" \
"above error message(s) to <debian-x@lists.debian.org>.";
exit 1;
}
run_parts () {
# until run-parts --noexec is implemented
if [ -z "$1" ]; then
internal_errormsg "internal run_parts called without an argument"
fi
if [ ! -d "$1" ]; then
internal_errormsg "internal run_parts called, but $1 does not exist or is not a directory."
fi
for F in $(ls $1); do
if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then
if [ -f "$1/$F" ]; then
echo "$1/$F"
fi
fi
done;
}
# initialize variables for use by all session scripts
OPTIONFILE=/etc/X11/Xsession.options
SYSRESOURCES=/etc/X11/Xresources
USRRESOURCES=$HOME/.Xresources
SYSSESSIONDIR=/etc/X11/Xsession.d
STARTUP=$HOME/.xsession
ALTSTARTUP=$HOME/.Xsession
ERRFILE=$HOME/.xsession-errors
# attempt to create an error file; abort if we cannot
if touch $ERRFILE 2> /dev/null && [ -w $ERRFILE ]; then
chmod 600 "$ERRFILE"
elif ERRFILE=$(tempfile 2> /dev/null); then
if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then
message "Xsession: unable to symlink \"$TMPDIR/xsession-$USER\" to" \
"\"$ERRFILE\"."
fi
else
errormsg "Xsession: unable to create X session log/error file. Aborting."
fi
exec > "$ERRFILE" 2>&1
# sanity check; is our session script directory present?
if [ ! -d "$SYSSESSIONDIR" ]; then
errormsg "Xsession: no $SYSSESSIONDIR directory found. Aborting." >&2
fi
# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
SESSIONFILES=$(run_parts $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
fi
exit 0
# vim:ai:et:sts=2:sw=2:tw=80:
Wäre da nicht etwas zu machen ??
Jyoti
Du hast nach xinitrc gefragt. So sieht's aus :
#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
# /etc/X11/xinit/xinitrc
#
# global xinitrc file, used by all X sessions started by xinit (startx)
# invoke global X session script
. /etc/X11/Xsession
Uübrigens, es gibt doch eine andere Xsession-Datei
(andere als /root/.xsession oder /home/claude/.xsession
/etc/X11/Xsession :
#!/bin/sh
#
# /etc/X11/Xsession
#
# global Xsession file -- used by display managers and xinit (startx)
set -e
message () {
# pretty-print messages of arbitrary length
echo "$*" | fold -s -w ${COLUMNS:-80} >&2;
}
message_nonl () {
# pretty-print messages of arbitrary length (no trailing newline)
echo -n "$*" | fold -s -w ${COLUMNS:-80} >&2;
}
errormsg () {
# exit script with error
message "$*"
exit 1;
}
internal_errormsg () {
# exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message
message "$*"
message "Please report the package name, version, and the text of the" \
"above error message(s) to <debian-x@lists.debian.org>.";
exit 1;
}
run_parts () {
# until run-parts --noexec is implemented
if [ -z "$1" ]; then
internal_errormsg "internal run_parts called without an argument"
fi
if [ ! -d "$1" ]; then
internal_errormsg "internal run_parts called, but $1 does not exist or is not a directory."
fi
for F in $(ls $1); do
if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then
if [ -f "$1/$F" ]; then
echo "$1/$F"
fi
fi
done;
}
# initialize variables for use by all session scripts
OPTIONFILE=/etc/X11/Xsession.options
SYSRESOURCES=/etc/X11/Xresources
USRRESOURCES=$HOME/.Xresources
SYSSESSIONDIR=/etc/X11/Xsession.d
STARTUP=$HOME/.xsession
ALTSTARTUP=$HOME/.Xsession
ERRFILE=$HOME/.xsession-errors
# attempt to create an error file; abort if we cannot
if touch $ERRFILE 2> /dev/null && [ -w $ERRFILE ]; then
chmod 600 "$ERRFILE"
elif ERRFILE=$(tempfile 2> /dev/null); then
if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then
message "Xsession: unable to symlink \"$TMPDIR/xsession-$USER\" to" \
"\"$ERRFILE\"."
fi
else
errormsg "Xsession: unable to create X session log/error file. Aborting."
fi
exec > "$ERRFILE" 2>&1
# sanity check; is our session script directory present?
if [ ! -d "$SYSSESSIONDIR" ]; then
errormsg "Xsession: no $SYSSESSIONDIR directory found. Aborting." >&2
fi
# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
SESSIONFILES=$(run_parts $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
fi
exit 0
# vim:ai:et:sts=2:sw=2:tw=80:
Wäre da nicht etwas zu machen ??
Jyoti
Die Dateien im /etc Verzeichnis sind nicht von belang, da du ja ne .xsession in deinem Homeverzeichnis hast werden die Dateien in /etc ignoriert.
Wenn du aber wmaker und enlightenment auch über gdm startest, kann das keine Xsession sein, dann hast du direkt den Windowmanager ausgewählt. Wähl mal in gdm links oben im Menü, xsession aus. Dann muss das ganze funktionieren, und deine .xsession Datei auch wirklich ausgeführt werden.Als Windowmanager verwende ich entweder KDE , wenn ich mich ab und zu als Root einlogge, sonst Sawfish (Gnome-Session) oder auch wmaker , enlightenment. Deshalb wollte ich das Ding unabhängig vom Windowmanager gestartet haben.
[ jabber ] chimerer@amessage.de
Hast du xsession ausgewählt oder wie hast du es jetzt gelöst?
npBedanke mich für die ausdauernde Hilfe.
[ jabber ] chimerer@amessage.de