Difference between revisions of "AMule"

From ArchWiki
Jump to: navigation, search
(Create daemon: added note on amuleweb crash)
(Create daemon: added note on setting shell to /bin/false)
Line 164: Line 164:
 
{{Note|Whichever way you are starting amuleweb, make sure this is done after amuled is up and running, or amuleweb could crash. If this happened, you can't use `rc.d stop` since process is no longer present, so instead just use `rc.d start` again.}}
 
{{Note|Whichever way you are starting amuleweb, make sure this is done after amuled is up and running, or amuleweb could crash. If this happened, you can't use `rc.d stop` since process is no longer present, so instead just use `rc.d start` again.}}
  
{{Note|Do not forget to set amule's shell to '''/bin/false''' as we do not want to give it shell access to the machine. Edit {{filename|/etc/password}} and replace '''/bin/bash''' by '''/bin/false''' for user amule:}}
+
{{Note|Do not forget to set amule's shell to '''/bin/false''' as we do not want to give it shell access to the machine. Edit {{filename|/etc/password}} and replace '''/bin/bash''' by '''/bin/false''' for user amule:
 
  amule:x:1001:1001::/srv/amule:/bin/false
 
  amule:x:1001:1001::/srv/amule:/bin/false
 +
{{Note|After doing exactly that, my amuled daemon did not start neither at boot nor with su (obviously). So be careful. This isn't required for security anyway - account without a password is locked (impossible to login), so it should be ok to retain shell -- [[User:Corvinus|Corvinus]] 06:51, 22 September 2011 (EDT)}}
 +
}}
  
 
==Usage==
 
==Usage==

Revision as of 10:51, 22 September 2011

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی


aMule is an eMule-like client for the eD2k and Kademlia networks, supporting multiple platforms.

Installation

aMule is available in the official [extra] repositories. To install, run:

# pacman -S amule

amuled is a full featured aMule daemon, running without any user interface (GUI). It is controlled by remote access through aMuleGUI (GTK), aMuleWeb, or aMuleCmd.

Configuration

amuled

Create configuration files

First we need to create a user for executing amule daemon:

# useradd -m -d /srv/amule -s /bin/bash amule

Then we run amuled once to create the configuration files:

# su amule
$ amuled --ec-config

Now amuled will ask you for a temporary password, enter something (amule for example, this does not matter), and use Ctrl-C to terminate amuled.

Edit configuration files

Now we need to configure amuled properly. First, we need to set up a password for the external connection of amuled.

$ echo -n <your password here> | md5sum | cut -d ' ' -f 1

The output of the above command is the encrypted password. Now you can edit the config file:

$ nano /srv/amule/.aMule/amule.conf

Under section [ExternalConnect], set:

AcceptExternalConnections=1
ECPassword=<encrypted password>

Create daemon

Note:

It's probably better to include these configuration files by default with amule package, like it is done with transmission.

To make amuled run on system start, we need to create the daemon /etc/rc.d/amuled:

# touch /etc/rc.d/amuled

Then copy the following to the file:

#!/bin/bash
DAEMON=amuled
USER=amule

. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
 start)
   stat_busy "Starting $DAEMON"
   su "$USER" -c "$(printf "%q -f>/dev/null" "/usr/bin/amuled" )"
   if [ $? = 0 ]; then
     add_daemon $DAEMON
     stat_done
   else
     stat_fail
     exit 1
   fi
   ;;
 stop)
   stat_busy "Stopping $DAEMON"
   killall --quiet --ignore-case "/usr/bin/amuled"
   if [ $? = 0 ]; then
     rm_daemon $DAEMON
     stat_done
   else
     stat_fail
     exit 1
   fi
   ;;
 restart|force-reload)
   $0 stop
   sleep 4 #1 is not enough
   $0 start
   ;;
 *)
   printf "Usage: %q {start|stop|restart|force-reload}\n" "$0" >&2
   exit 1
   ;;
esac

exit 0

Make it executable:

# chmod 755 /etc/rc.d/amuled

Add it to your Template:Filename, so it will be autostarted.

DAEMONS=( ... network amuled ... )

amuleweb

Create configuration files

Start amuleweb too using the user you just created to create the configuration file:

$ amuleweb --write-config --password=<password here> --admin-pass=<web password here>

Note that here, the <password here> is the unencrypted password you used to configure amuled. <web password here> is the unencrypted for the log in on the web interface. This command will write configuration file as such.

Create daemon

Create the daemon Template:Filename:

# touch /etc/rc.d/amuleweb

Copy the following to the file.

#!/bin/bash
DAEMON=amuleweb
USER=amule

. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
 start)
   stat_busy "Starting $DAEMON"
   su "$USER" -c "$(printf "%q --quiet &" "/usr/bin/amuleweb" )"
   if [ $? = 0 ]; then
     add_daemon $DAEMON
     stat_done
   else
     stat_fail
     exit 1
   fi
   ;;
 stop)
   stat_busy "Stopping $DAEMON"
   killall --quiet --ignore-case "/usr/bin/amuleweb"
   if [ $? = 0 ]; then
     rm_daemon $DAEMON
     stat_done
   else
     stat_fail
     exit 1
   fi
   ;;
 restart|force-reload)
   $0 stop
   sleep 1
   $0 start
   ;;
 *)
   printf "Usage: %q {start|stop|restart|force-reload}\n" "$0" >&2
   exit 1
   ;;
esac

exit 0

Make it executable:

# chmod 755 /etc/rc.d/amuleweb

Also add it to your Template:Filename, so it will be autostarted.

DAEMONS=( ... network amuled amuleweb ... )
Note: Whichever way you are starting amuleweb, make sure this is done after amuled is up and running, or amuleweb could crash. If this happened, you can't use `rc.d stop` since process is no longer present, so instead just use `rc.d start` again.
Note: Do not forget to set amule's shell to /bin/false as we do not want to give it shell access to the machine. Edit Template:Filename and replace /bin/bash by /bin/false for user amule:
amule:x:1001:1001::/srv/amule:/bin/false
Note: After doing exactly that, my amuled daemon did not start neither at boot nor with su (obviously). So be careful. This isn't required for security anyway - account without a password is locked (impossible to login), so it should be ok to retain shell -- Corvinus 06:51, 22 September 2011 (EDT)

Usage

You can start the daemon with:

# /etc/rc.d/amuled start
# /etc/rc.d/amuleweb start

Now you can run `amulegui` or connect to amuleweb at http://127.0.0.1:4711 (or by external address of your host).

Tip: If the default URL for nodes.dat for Kad network does not work, you can get URL from there: http://nodes-dat.com

For further info on using the program, continue to aMule wiki.