I have done a script to start transmission-daemon as a normal user:
start on filesystem
stop on runlevel [!2345]
respawn
respawn limit 10 5
pre-start script
test -x /usr/bin/transmission-daemon || { stop; exit 0; }
test -d /home/user/.config/transmission-daemon || { stop; exit 0; }
end script
exec su -l -c 'transmission-daemon --foreground --config-dir /home/user/.config/transmission-daemon --logfile /home/user/.config/transmission-daemon/daemon.log' user
This script works but I see two processes in execution of transmission-daemon:
user 5041 0.0 0.0 48556 1516 ? Ss 01:10 0:00 su -l -c transmission-daemon --foreground --config-dir /home/user/.config/transmission-daemon --logfile /home/user/.config/transmission-daemon/daemon.log user
user 5048 0.5 0.0 150432 2960 ? Sl 01:10 0:00 transmission-daemon --foreground --config-dir /home/user/.config/transmission-daemon --logfile /home/user/.config/transmission-daemon/daemon.log
Is this correct? Is there another way to execute this better?
Note: The default startup script of transmission package is disabled.
More info:
If I execute transmission as a daemon (without foreground) the problem is the detected PID by init:
start on filesystem
stop on runlevel [!2345]
expect fork
pre-start script
test -x /usr/local/bin/transmission-daemon || { stop; exit 0; }
test -d /home/mario/.config/transmission-daemon || { stop; exit 0; }
end script
exec sudo -u user transmission-daemon --config-dir /home/user/.config/transmission-daemon --logfile /home/user/.config/transmission-daemon/daemon.log
.
$ sudo initctl list | grep trans
trans-test start/running, process 3110
but really this is the PID of sudo (finished process), the transmission-daemon PID is another:
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user 3148 0.0 0.0 154848 2708 ? Ssl 13:33 0:00 transmission-daemon
foreground. – Juan Simón Jul 7 '11 at 9:40