Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

20.02.2009, 10:11

Probleme beim edit von /etc/init.d Skript (rtorrent, screen)

Hi Leute,

hab folgendes Problem:
wie hier erwähnt wird beim externen zugriff unter anderem die tastenkombination Strg + S automatisch gemappt, weshalb ich die für screen (und rtorrent im screen) nicht verwenden kann, die Lösung ist ein detachen vom screen, dann ein

Quellcode

1
2
stty stop undef
stty stop undef 

ausführen, wieder zurück an den screen retachen und Strg+S funktioniert wunderbar.
Wie kann ich die beiden Befehl im init-Skript unterbringen, dass sie jedes mal wenn /etc/init.d/rtorrentd gestartet wird ausgeführt werden?

hier die /etc/init.d/rtorrentd

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/sbin/runscript

depend() {
        use net.*
}

start() {
        ebegin "Starting rtorrent"
        start-stop-daemon --start --chuid $USER \
            --env TERM="xterm" \
            --env HOME="/home/$USER" \
            --background \
            --exec /usr/bin/screen -- -D -m /usr/bin/rtorrent

        eend $?
}

stop() {
        ebegin "Stopping rtorrent"
        start-stop-daemon --stop --signal 2 --name rtorrent
        eend $?
}

habs jetzt schon mit

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
start() {
        ebegin "Starting rtorrent"
        start-stop-daemon --start --chuid $USER \
            --env TERM="xterm" \
            --env HOME="/home/$USER" \
            --background \
            --exec stty stop undef \
                   stty start undef \
                   /usr/bin/screen -- -D -m /usr/bin/rtorrent

        eend $?
}
...

und ähnlichen kombis probiert, leider immer ohne erfolg, wie passt man ein init-skript richtig an?

danke für die info, ich hab google natürlich bemüht, aber scheinbar falsch gesucht, konnte nichts finden, was mir weiterhilft.

mfg

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tausche« (20.02.2009, 11:37)


2

20.02.2009, 11:07

Schau mal hier http://www.gentoo.org/doc/en/handbook/ha…l?part=2&chap=4 und da unter "Adding Custom Options"

Vielleicht hilft das...

Auch steht da etwas weiter oben das bei exec nicht einfach nur shellscripte oder so ausgeführt werden sollen sondern ein service gestartet werden soll... Habs jetzt nur überflogen, aber könnte helfen...

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

3

20.02.2009, 11:26

danke für die antwort!

das handbook hab ich mir schon durchgesehen, auch die aussage "Make sure that --exec actually calls a service and not just a shell script that launches services and exits", ich konnte mir nur keinen reim drauf machen.

mit einer neuen function würds vielleicht gehen, allerdings möchte ich ja gar keine zusätzlichen funktion haben/schreiben sondern nur einen "service" mehr aufrufen, wies ja im original sogar schon funktioniert (zuerst screen und dann rtorrent)

als beispiel werden einen absatz drunter die skripte in /etc/init.d genannt, ich hab mir da mal per zufallsprinzip ein paar angesehen, da wird im exec command aber immer nur 1 service gestartet, hat wer ein gutes beispiel in den /etc/init.d dafür? ich will die nicht alle durchsehn.

4

20.02.2009, 11:31

Errm ... ich hätte das zunächst mal so probiert:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
start() {
        ebegin "Starting rtorrent"
        stty start undef
        start-stop-daemon --start --chuid $USER \
            --env TERM="xterm" \
            --env HOME="/home/$USER" \
            --background \
            --exec /usr/bin/screen -- -D -m /usr/bin/rtorrent

        eend $?
}

stop() {
        ebegin "Stoping rtorrent"
        stty stop undef
...
        eend $?
}


Nicht gut? 8|
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

5

20.02.2009, 11:37

wo is der smiley der sich mit der hand an die stirn klatscht?

mann, mann, mann, habs echt nicht gepeilt, danke dir!

wenn ich die anleitung richtig verstanden hab, dann sollte screen zuerst gestartet werden, dann beide kommandos stty strt/stop undef und dann rtorrent, ich werd das mal umsetzen und die lösung posten.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tausche« (20.02.2009, 11:43)


6

20.02.2009, 12:12

sorry für doppelpost...

sodala, hab das problem ein wenig umschifft, anstatt die keybindings in screen nach dem start von screen auf 'undef' zu setzen wird jetzt per command-line parameter '-fn' die flow control von screen ausgeschalten (während der laufzeit mit Ctrl+A Ctrl+F zu toggeln, on/off/auto), was denselben effekt hat, auf jeden fall kann ich jetzt in rtorrent über screen wieder mit Ctrl+S torrents starten.

/etc/init.d/rtorrentd

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/sbin/runscript

depend() {
        use net.*
}

start() {
        ebegin "Starting rtorrent"
        start-stop-daemon --start --chuid $USER \
            --env TERM="xterm" \
            --env HOME="/home/$USER" \
            --background \
            --exec /usr/bin/screen -- -fn -D -m /usr/bin/rtorrent
}

stop() {
        ebegin "Stopping rtorrent"
        start-stop-daemon --stop --signal 2 --name rtorrent
        eend $?
}

danke für die hilfe leute!

EDIT:
das obenstehende runscript funktioniert bei mir für Version 0.8.2-r5, beim upgrade auf 0.8.4-r1 hab ich das neu hinzugefügte use-flag "daemon" gesetzt, somit wird direkt vom ebuild ein neues initscript erzeugt, das das alte ersetzt, und zwar durch folgendes:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
!/sbin/runscript
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-p2p/rtorrent/files/rtorrentd.init,v 1.1 2008/12/26 07:01:43 dar$

depend() {
        use net.*
}

start() {
        ebegin "Starting rtorrent"
        start-stop-daemon --start --chuid $USER \
        --env TERM="xterm" \
        --env HOME="/home/$USER" \
        --exec /usr/bin/screen -- -dmS rtorrentd /usr/bin/rtorrent
        eend $?
}

stop() {
        ebegin "Stopping rtorrent"
        start-stop-daemon --stop --signal 2 --name rtorrent
        eend $?
}

wo nun die exec-Zeile wieder angepasst werden muss:
--exec /usr/bin/screen -- -fn-dmS rtorrentd /usr/bin/rtorrent

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tausche« (22.02.2009, 10:27)