On Wed, Apr 08, 2009 at 04:58:38PM -0400, Nick Guenther wrote: > I'm trying to make my torrents get started with my server. A script is > at http://ubuntuforums.org/archive/index.php/t-859543.html that starts > it up in a detached screen session, but obviously the linux-ism of > that script won't work here. I pulled out the important bits and just > to start off wrote this script which I placed in ~/bin/scr: > #!/bin/sh > TAG=TAG=`date +%H%M%S` > sudo -u kousu -H /usr/local/bin/screen -d -m -S $TAG > > If I run this script as myself or as root (to simulate running as > /etc/rc) it works: > $ sh bin/scr > $ screen -ls > There is a screen on: > 21423.152001 (Detached) > 1 Socket in /tmp/uscreens/S-kousu. > > $ sudo su > # cd / > # sh /home/kousu/bin/scr > # ^D > $ screen -ls > There are screens on: > 21423.152001 (Detached) > 22840.152333 (Detached) > 2 Sockets in /tmp/uscreens/S-kousu. > > $ > > So I added this to rc.local: > sh /home/kousu/bin/scr > > But whenever I reboot I get this: > $ screen -ls > There is a screen on: > 12042.151112 (Dead ???) > Remove dead screens with 'screen -wipe'. > 1 Socket in /tmp/uscreens/S-kousu. > > I tried moving the "sh /home/kousu/bin/scr" to the very last line of > /etc/rc just in case, right before "exit 0" but still no luck. > > I took a look at all the environment variables in the working and > broken cases and even copied all except the SUDO_* and SSH_* into my > script and got no difference, so the only remaining difference between > when I run it as a logged in user and when the system runs it for me > is that /etc/rc gets run under the the login class 'daemon'. But even > that seems wrong since I just added a test user with login class > 'daemon', su'd in, and ran my script and when I came back to my user > account had a shiny new screen session waiting for me. > > My only remaining theory is that getty(8) or login(1) is resetting the > terminals which might make screen(1) sad, but I have no idea how to > get error messages out of screen at boot time. > > Interestingly, running rtorrent from my crontab as "@reboot screen -fa > -d -m -S torrents rtorrent" (thanks > http://www.plouj.com/blog/2008/03/31/howto-run-rtorrent-from-cron-inside-screen) > works and is simpler than having to sudo -u and give full paths for > everything so I'll just stick with that. > > I'd still like to know what's going on here. Running things from boot > scripts appearently works on Linux, and a guy I asked last night > seemed to think my method should work on FreeBSD, so what is OpenBSD > doing that's upsetting screen? > > Thanks for your attention, > -Nick >
Why don't you use btpd (it's in ports). http://www.murmeldjur.se/btpd/ I use it to make exactly what you mean (and then btcli to monitor from time to time).