aMule Forum
Spanish => sp_Linux => Topic started by: MiTH on May 07, 2005, 04:46:14 PM
-
Buenas a todos. En primer lugar felicitaros ya probé hace mucho amule y me gustó, pero debido a que no tenía el core separado del gui seguí tirando de mi mldonkey que dejo funcionadno en el servidor y controlo desde otro ordenador.
Despues del anuncio de la versión 2.0 de amule y el descubrimiento de que ya incorporaba un modo de daemon para ejecutarse.
Despues de bajarme el codigo fuente y compilar por un lado el amuled y por otro el gui externo tengo que reconocer que el trabajo esta dando sus frutos :baby: :baby:
Despues de las felicitaciones vienen mis cuestiones.
Intento crear un script de inicio para el init.d que voy a dejar en una debian. En mi casa la corriente eléctrica tiene la mala costumbre de irse de vez en cuando y luego nunca me acuerdo de lanzar el demonio. Mis intentos iniciales fueron algo así:
PATH=/bin:/usr/bin:/usr/local/bin/:/sbin/:/usr/sbin/
PIDFILE=/var/run/amuled.pid
DAEMON=/usr/local/bin/amuled
USER=amule
case "$1" in
start)
echo -n "Starting aMuled : amuled"
start-stop-daemon --chuid $USER --user $USER --start --pidfile $PIDFILE --exec $DAEMON --background
echo "."
;;
stop)
echo -n "Stopping aMuled: amuled"
start-stop-daemon --stop --pidfile $PIDFILE --exec $DAEMON
echo "."
;;
reload)
echo "Not implemented."
;;
force-reload|restart)
sh $0 stop
sh $0 start
;;
*)
echo "Usage: /etc/init.d/amuled-server {start|stop|restart|force-reload|reload}"
exit 1
;;
esac
exit0
Como es lógico tengo creado el usuario amule y su home para que pille allí la configuración.
Con este código lo que me ocurre es que en teoría, aunque el star-stop-daemon ejecuta (o eso parece) el proceso amuled como usuario amule el propio programa insiste en pensar que se ejecuta como root e intenta buscar el directorio .aMuled en la carpeta de root. Obviamente debian dice que lo esta ejecutando el usuario amule y no le da permisos para entrar.
Podía ejecutarlo como root sin problema, pero no me gusta nada dejar estos procesos ejecutandose como root.
¿Existe algún script ya creado para tales menesteres o soy el primer valiente que lo intenta? (esto último lo dudo)
En sugerencias ya os pondré que estaría bien poder decirle al amuled de donde tiene que pillar los archivos de configuración, con lo que podríamos ponerlos en el /etc/default/amule.conf y olvidarnos de tener que buscar en una carpeta de un home. Algo parecido a lo que hace el mldonkey.
Saludos para todos.
-
Pienso que es por la variable HOME, parece que el stop-start-daemon no la cambia a la del usuario amule, prueba a poner HOME=tu_home_del_usuario_amule en la script.
La opcion -f es para forzar background, pero asi igual no te funciona lo del pid.
Saludos
-
Pues efectivamente se debia a la variable de entorno HOME. Simplemente la cambio antes de ejecutar el start-stop-daemon y la vuelvo a dejar como estaba posteriormente.
El Script definitivo por si le interesa a alguien ha quedado tal que así:
PATH=/bin:/usr/bin:/usr/local/bin/:/sbin/:/usr/sbin/
DAEMON=/usr/local/bin/amuled
USER=amule
case "$1" in
start)
echo -n "Starting aMule : amuled"
export HOME=/home/amule/
start-stop-daemon --chuid $USER --user $USER --start --exec $DAEMON --background
export HOME=/root/
echo "."
;;
stop)
echo -n "Stopping aMule : amuled"
start-stop-daemon --stop --chuid $USER --user $USER --exec $DAEMON
echo "."
;;
reload)
echo "Not implemented."
;;
force-reload|restart)
sh $0 stop
sh $0 start
;;
*)
echo "Usage: /etc/init.d/amuled-server {start|stop|restart|force-reload|reload}"
exit 1
;;
esac
exit 0
Muchas gracias por la ayuda.
-
buenas.. voy con una pregunta que nada que ver con el amule y a la ves iene que ver (un lio jaja). Bueno la cosa es que quiero hacer lo del script que comentan aqui pero no se mucho de como hacerlo, estuve viendo en el dir etc/init.d y vi que hay monton de scripts y mi pregunta es .
1- todos esos scripts son los que se ejecutan al inicio ?
2 si es asi creo un archivo te texto que el script para ejecutar el amule y que extencion le pongo?
bueno espero puedan ayudar a este novato en linux asi algun dia yo pueda devolver el favor.
Saluds y gracias :D
-
creas el archivo de script, lo pones donde quieras, lo haces ejecutable (chmod a+x) y le haces un link desde el directorio de tus inits (por ejemplo, /etc/rc2.d/). pero si no sabes muy bien de que va esto, lo mejor es que no lo toques por ahora... ;-)
un saludo!
-
Buenas a tod@s:
En mi debian SID es imposible utilizar el script porque no arranca el demonio ni a tiros, parece que funciona bien pero no lo arranca. Ya se que con tanto dato que he dado va a ser imposible que me ayudeis pero la esperanza es lo ultimo que se pierde.
-
pues si, con toda esa info me saturo embriagado por los datos.
mira si en la consola sale algun error o algo. o por lo menos explica como lo has puesto y que has hecho.
-
Siento lo de la informacion pero es que realmente no da ninguna. Si ejecuto /etc/init.d/amuled-server start pone esto:
Starting aMule : amuled.
si intento conectar conm el remote-gui no puede porque no funciona y si intento parar el demonio me dice que no esta funcionando y haciendo un ps realmente se ve que no funciona.
Saludos.
-
ejecutalo manualmente el script a ver que pasa. es decir, no desde el init.d sino tu mismo manualmente
-
Gracias Jacobo221 por tu ayuda pero he conseguido solucionar el problema que ha resultado ser con el usuario amule de modo que lo he cambiado por el usuario que uso yo normalmente y parece que funciona.
Ahora lo que me pasa es que al principio el interfaz web funciona bien pero al de un rato funcionando el amuled el interfaz web deja de funcionar es decir el navegador me da un error de que no puede conectar en dicho puerto pero el remote-gui y el amulecmd siguen conectandose con el demonio, ¿puede ser el fallo del interfaz web debido a la compresion gzip del mismo?
Gracias a todos por vuestra atencion.
-
sera que la interfaz se cuelga. cuando eso te pase, killall -9 amuleweb && amuleweb
y a conetcat como siempre ;)
-
Pues tienes razon Jacobo221 es la interfaz que se cuelga y ademas lo hace a la velocidad de la luz y me he dado cuenta que en ralidad me da una violacion de segmento.
-
es extraño que se te cuelgue tanto. prueba a compilar amuleweb tu mismo. probablemente el package tenga algun problema en tu distro
-
son los paquetes debian cvs de ayer y con los de antes de ayer me pasaba lo mismo. Intentare compilarlo yo pero no se si sere capaz.
-
no deberias tener problemas si hechas un vistazo a http://wiki.amule.org
-
Hola!
Intento utilizar el script de MiTH haciendo lo siguiente:
Copio el segundo script, el q dice q es el definitivo y lo copio en /etc/init.d/amule-server.
Cambio la linea USER=amule por USER=jesus, q es el usuario q normalmente arranca amuled.
Le doy permisos de ejecución a todo dios, es decir chmod a+r /etc/init.d/amule-server
Lo ejecuto haciendo /etc/init.d/amule-server start siendo root
el resultado es que me pone:
Starting amuled: (muy rapido) y no arranca nada
lo he probado a hacer como jesus y sigo en las mismas, dándome otro error:
Starting aMule : amuledstart-stop-daemon: Unable to set initgroups() with gid 1000
¿qué debo hacer para que funcione el script? Gracias anticipadas
-----------
Edito y me autorrespondo:
hay que cambiar la línea
export HOME=/home/amule/
por...
export HOME=/home/del/usuario
-
> Le doy permisos de ejecución a todo dios, es decir chmod a+r /etc/init.d/amule-server
deberias hacer "a+rx" !
-
> Le doy permisos de ejecución a todo dios, es decir chmod a+r /etc/init.d/amule-server
deberias hacer "a+rx" !
de todas maneras, no creo que esp splucione tu problema. hm, esop algo raro. Cuando vuelva de las vacaciones le hecho un vistazo al tema. Recuerdamelo si ves que me olvido ;)
un saudo!
-
Nada, tranqui, ya edite y me autorrespondí, tenía que cambiar también la variable del home del usuario aparte del user :D y ahora que me doy cuenta le daba permisos de ejecución con chmod a+x, q me confundí al escribir aquí. gracias de todas formas :P
-
de nada ;)
aqui estaremos para lo que sea.
-
Bueno ... pues acabo de encontrar el script y lo he colocado en /etc/init.d con el nombre de amule-daemon ...
Ahora que tengo que hacer para que se ejecute en el arranque del sistema? Se que debo meter un enlace simbólico en /etc/rc2.d y otro en /etc/rc0.d para arrancar el dominio y pararlo repectivamente, y que deben tener como nombre SXYamule-daemon y KXYamule-daemon respectivamente. .. pero es que lo he hecho y cuando el sistema arranca, amuled no arranca en ningún lado ...
¿cómo hago?
P.D. ¿habría que modificar el script y añadirle al principio #!/bin/sh ?
-
Buen, pues me auto-respondo.
Modifiqué unas cuantas cosas del script, como la línea inicial #!/bin/sh y cosas para hacerlo un poco más genérico, poca cosa la verdad, sobre todo con lo de los usuarios, que opté por ponerle directamente mi usuario que era donde tenía todos los archivos de configuración y demás.
Para luego meterlo en las carpetas rcN.d usé update-rc.d amule-daemon defaults 95 y todo fue como la seda ...
Muchas gracias por el script y por todo!
-
un placer! ;)
-
Hola, he realizado todos los pasos indicados para el script, y al ejecutar me sale el siguiente error:
[root@localhost init.d]# ./amule-server start
Starting aMule : amuled./amule-server: line 11: start-stop-daemon: command not found
.
he mirado las path, y está todo correcto, alguna sugerencia? gracias.
-
el comando start-stop-daemon no existe en tu sistema. quizas necesitas ser root para ejecutarlo o sencillamente tu distribucion no lo incluye. pregunta en los foros de tu distro cual es el equivalente de que dispones y cambia el comando en el script.
un saludo.
-
Gracias, es una mandriva2006, ya he preguntado en sus foros, a ver si me responden
-
de nada. yo no te puedo ayudar. nunca he usado mandrake, sorry :( espero que te respondan. sino... hay otras alternativas tales como no ejecutarlo como daemon del sistema, sino local. pero bueno, primero, a ver si te responden.
un salduo.
-
#!/bin/sh
#
# Startup script for aMuled
#
# chkconfig: 345 80 30
#
# description: Starts the aMule deamon. The service is available \
# via [URL]http://localhost:4711.[/URL] The deamon runs under \
# the amule account
#
# processname: amule
USER=yourusername
RETVAL=0
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
# Avoid using root's TMPDIR
unset TMPDIR
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/bin/amuled -o -f /usr/local/bin/amuled ] || exit 0
start() {
printf "Starting the aMule daemon: "
daemon --user $USER amuled -f &
#RETVAL is never returned by aMule?
RETVAL=0
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/amuled || \
RETVAL=1
return $RETVAL
}
stop() {
printf "Shutting down the aMule daemon: "
killproc amuled
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/amuled
echo "Killing webserver!!" && killall amuleweb
return $RETVAL
}
# status() {
# status amuled
# RETVAL=$?
#}
restart() {
$0 stop
$0 start
}
#mdkstatus() {
# status amuled
#}
# Allow status as non-root.
#if [ "$1" = status ]; then
# mdkstatus
# exit $?
#fi
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
# status)
# mdkstatus
# ;;
condrestart)
[ -f /var/lock/subsys/smb ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
exit 1
esac
exit $?
Este ficheiro esta localizado em /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/amuled
Este ultimo comando é para fazer o ficheiro executavel.
Este script é o que eu uso para lançar o amuled como um serviço do sistema(system service)
Para arrancar com amuled,as root:
service amuled start
ou para parar o amuled:
service amuled stop
Incluí um comando para matar o webserver para no caso de este não parar ao parar o amuled....assim pára sempre.... :D
Onde diz USER não esquecer de mudar para o username o qual vai correr o amuled
Espero k ajude.... :D
-
#!/bin/sh
#
# Startup script for aMule
#
# chkconfig: 345 80 30
#
# description: Starts the aMule . The service is available \
# via [URL]http://localhost:4711.[/URL] The GUI runs under \
# a user account
#
# processname: amule
USER=yourusername
RETVAL=0
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
# Avoid using root's TMPDIR
unset TMPDIR
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/bin/amule -o -f /usr/local/bin/amule ] || exit 0
export DISPLAY="localhost:0"
start() {
printf "Starting aMule : "
daemon --user $USER amule &
#RETVAL is never returned by aMule?
RETVAL=0
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/amule || \
RETVAL=1
return $RETVAL
}
stop() {
printf "Shutting down the aMule daemon: "
killproc amule
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/amule
echo "Killing webserver!!" && killall amuleweb
return $RETVAL
}
# status() {
# status amule
# RETVAL=$?
# }
restart() {
$0 stop
$0 start
}
#mdkstatus() {
# status amuled
#}
# Allow status as non-root.
#if [ "$1" = status ]; then
# mdkstatus
# exit $?
#fi
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
# status)
# mdkstatus
# ;;
condrestart)
[ -f /var/lock/subsys/amule ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
exit 1
esac
exit $?
chmod +x /etc/rc.d/init.d/amule
Aqui está outro mas para o amule...experimente e diga como correu....não esquecer de mudar o USER para o user que vai correr o amule:
service amule start
Se alguem usar o vnc pode arrancar no seu desktop:1 apenas mudando a linha 36 de:
export DISPLAY="localhost:0"
para:
export DISPLAY="localhost:1"
para parar o amule como root:
service amule stop
Fácil não? :D
Happy amuling...
Cheers.....
-
Hola, he utilizado el primer script que ha puesto wardevil, y me ha funcionado perfectamente, muchas gracias .
Ahora tengo otro problemilla. He creado un usuario (amule) para que sea el que lance el programa. Le he dado permisos para que todo el mundo pueda leer y escribir en la carpeta .amule, pero no me deja ni añadir servidores (intento añadir con ficheros server.met y a mano, pero no los coge), ni modificar distintos parámetros (si me deja, pero no los guarda). Supongo que será algún problem de permisos, pero no consigo arreglarlo. A ver si me podéis echar un cable. Gracias.
-
"distitnos parametros" <- cuales?
debes dar permisos de escritura a "otros" o a "user" siendo el pripietario el usuario "amule" al directorio ".amule". ademas, ese usuario debe ser capaz de acceder a todos los directorios padre de este, asi que asegurate de que es asi, sino no sabra que ese directorio existe.
-
distintos parametros me refiero a la velocidad de bajada, subida, directorios de incoming y temp, etc.
los permisos están bien, lectura escritura a todo el mundo, tanto /home/amule como /home/amule/.aMule
-
algo estas hacviendo mal, prueba ahacerlo manualmente entrando como usuario "amule" y mira a ver que error te da.
en mi opinion, los permisos parecen estar claramente mal.
-
Originally posted by Jacobo221
algo estas hacviendo mal, prueba ahacerlo manualmente entrando como usuario "amule" y mira a ver que error te da.
en mi opinion, los permisos parecen estar claramente mal.
yo tb creo que el permiso de algún fichero está mal, pero no acierto a adivinar qué fichero es. Hay algún otro fichero que utilice el gui aparte del amule.conf?
Aquí dejo una captura con los permisos:
(http://img14.imageshack.us/img14/9031/captura8to.th.png) (http://img14.imageshack.us/my.php?image=captura8to.png)
Muchas gracias por toda la ayuda que me estáis ofreciendo.
-
estas usando amule, no? quiero decir, no estas usando el gui remoto de amule supongo... asi pues, si, amule.conf es el unico.
de nuevo, intenta modificar el archivo entrando manualmente como usuario "amule" ("su amule") a ver si puedes
tu problema es realmetne extraño.
tambien podria ser que te hayas quedad con 0 bytes lubres en el disco duro, aunque supongo que eso ya lo habrás comprobado.
-
Gracias, el amule.conf sí lo puedo modificar, pero estoy intentando usar el amulegui, por eso preguntaba si había otro archivo. Gracias de nuevo.
-
remote.conf y gui.conf (o era amulegui.conf?)
-
Estoy intentando usar el primer script (la version corregida) pero no hace nada, pone lo de iniciando pero luego miro a ver si esta el proceso en ejecucion y no lo esta.
He creado el user amule, he dado permisos de ejecucion al script... He probado con el user que ejecuto el amule normalmente y pasa lo mismo.
He cambiado la ruta de DAEMON para que se ajustara a donde tengo instalado el amuled.
Alguna idea? No da error asi que no se que mirar.
Gracias de antemano, Fitti.
PD: Si lo ejecuto como user me devuelve "Starting aMule : amuledstart-stop-daemon: Unable to set gid to 1001 (Operation not permitted)
"
EDITO:
Ya lo he arreglado, he copiado mi carpeta .aMule al user amule, he cambiado la config de incoming y temp, he cambiado el propietario de la carpeta .aMule y ahora aprece que va. :D
-
Hola a todos, este es mi spcript para lanzar para Fedora Core 4. Primero decir que al cabo de unos 15 minutos de ejecutarlo se inicia amuleweb y amulecmd; no sé el motivo pero tarda lo mismo que si hago "amule -f"
Comentar que _USUARIO_ es el usuario que utilizarás y _MiContraseñaEnAmulecmd_ es tu contraseña en amulecmd. ¿ Por qué utilizo ésto y no hago un kill?, porque al salir con el amulecmd, me está guardando lo descargado que está en memoria pero NO en el disco duro, como un sync. Por tanto, si hago kill, pierdo esta parte descargada.
Venga, a ver si alguien se anima con el Debian y el start-stop-daemon
#!/bin/sh
# chkconfig: 2345 99 00
# description: Gesiona amuled
# processname: amuled
# config: /home/_USUARIO_/.aMule/amule.conf
# pidfile: /var/run/amuled.pid
# Funciones implicadas a cargar.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
else
echo "no se encuentra /etc/init.d/functions"
exit 0
fi
# Ruta a los binarios.
amulecmd=/usr/local/bin/amulecmd
amuled=${AMULED-/usr/local/bin/amuled -f}
prog=amuled
# Ruta a los ficheros de estado.
pidfile=${PIDFILE-/var/run/amuled.pid}
lockfile=${LOCKFILE-/var/lock/subsys/amuled}
user="--user amuled"
passwordcmd="-P _MiContraseñaEnAmulecmd_"
RETVAL=0
# Función de arranque.
start() {
if [ `pidof $prog` ]
# si ya funciona el amuled
then
statusLocal
RETVAL=$?
# si NO funciona el amule
else
# arranca el servicio
echo -n $"Starting $prog: "
daemon $user $amuled
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile} && pidof $prog > $pidfile
fi
return $RETVAL
}
# Función de parada.
stop() {
# mata los amulecmd
for a in `pidof amulecmd`
do
kill -9 $a
done
# mata amuleweb
if [ `pidof amuleweb` ]
then
kill -9 `pidof amuleweb`
fi
if [ `pidof $prog` ]
# si funciona el amuled
then
# para el servicio
echo -n $"Stopping $prog: "
# CIERRA SALVANDO los ficheros mediante el cliente amulecmd
$amulecmd $passwordcmd -c "shutdown" > /dev/null
# por si queda algo vivo....mata el proceso
killproc $prog
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
else
rm -f ${lockfile} ${pidfile}
statusLocal
RETVAL=$?
fi
return $RETVAL
}
# Función que muestra el estado del amuled
statusLocal() {
status $prog
if [ `pidof amuleweb` ]
# si funciona el amuled
then
echo "y amuleweb ( pid `pidof amuleweb`)"
fi
RETVAL=$?
return $RETVAL
}
# Menú para elegir la rutina
case "$1" in
start)
start
;;
stop)
stop
;;
status)
statusLocal
;;
restart)
stop
start
;;
*)
echo $"Usage: $prog {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
-
#!/bin/bash
NAME=$(basename "$0")
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/amuled
OPTIONS=--only-chuck-norris-would-stop-me
DESC=amuled
USER=debian #A user who already ran amule once to configure it.
test -x "$DAEMON" || exit 0
case "$1" in
start)
echo -n "Starting $DESC: "
su "$USER" -c "$(printf "%q -f %q" "$DAEMON" "$OPTIONS" )"
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
killall --quiet "$DAEMON"
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
killall --quiet "$DAEMON"
sleep 1
su "$USER" -c "$(printf "%q -f" "$DAEMON" )"
;;
*)
printf "Usage: %q {start|stop|restart|force-reload}\n" "$0" >&2
exit 1
;;
esac
exit 0