Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  0 1512
Får ikke, under noen omstendigheter til å starte rtorrent fra scriptet.
Kan kjøre kommandoene i et shell uten problem, men i scriptetet dør screen samtidig som scriptet avslutter.
Noen som er smartere enn meg på dette?

Kode

force_update() {
client_id=`head -n 100 /dev/urandom | md5sum | tr -d " -"`
json=`wget -q --post-data="user=$username&pass=$password&client_id=$client_id&local_ip=$local_ip" -O - 'https://www.privateinternetaccess.com/vpninfo/port_forward_assignment' | head -1 |tee /tmp/vpn_ip`
echo -n "updating ip and ports: "
new_port="`echo $json |awk -F : '{print $2}' |sed 's/}//'`"
cat $conf | sed "s/bind = $old_ip/bind = $local_ip/" | sed  "s/port_range = $old_port-$old_port/port_range = $new_port-$new_port/" >/tmp/$rpid.conf
echo "ok: $old_ip -> $local_ip: $old_port -> $new_port"
mv /tmp/$rpid.conf $conf
echo -n "Restarting client.. "
kill $rpid
sleep 2s
screen -dmS rutorrent -s /usr/local/bin/rtorrent
ps u > /tmp/tmpfil
rpid_new="`cat /tmp/tmpfil |grep rtorrent |awk '{print $2}'`"
rm -rf /tmp/tmpfil
echo "$rpid killed. New proc: $rpid_new"
exit
Det jeg plages med er

Kode

screen -dmS rutorrent -s /usr/local/bin/rtorrent
har prøvd mange variasjoner av denne, med og uten -s har prøvd å starte screen og deretter sende en kommando inn i forrige screen med rtorrent.. det bare DØR.
Jeg frykter det har en sammenheng med exit i slutten av koden der, men jeg MÅ exite scritpet der, hvis ikke vil den kjøre en haug med andre funksjoner som den ikke skal.

Hele hensikten med scriptet er å starte opp rtorrent som en helt egen prosess for å deretter avslutte scriptet og stenge sesjonen.

Holy shit. Fikk til..
Etter 2 timer med prøving og feiling.

Måtte rett og slett spesifisere en screenrc, resultatet ble dette:

Kode

echo -n "Restarting client.. "
kill -9 $rpid #instakill
echo "screen /usr/local/bin/rtorrent" > /tmp/rtorrentrun
sleep 1s
screen -dmS rtorrent -c /tmp/rtorrentrun
rm /tmp/rtorrentrun
Sist endret av RandomiZed; 17. februar 2016 kl. 01:19. Grunn: Automatisk sammenslåing med etterfølgende innlegg.