Sie sind nicht angemeldet.

1

07.07.2009, 10:28

brscan-skey per init-Script starten (Brother Drucker-Scanner-Fax-Kombi)

Moin,

ich bräuchte ein wenig Input. Ich versuche, ein Init-Script zu schreiben, das mir das brscan-skey Tool beim Systemstart lädt, damit ich am Drucker/Scanner direkt via Netzwerk auf meinen Rechner scannen kann. Vorweg: Starte ich das Programm manuell von der Kommandozeile, geht alles, wie es soll. Aber das ist ja unsportlich! ;-)

Folgendes habe ich bisher:

Quellcode

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

BRSCAN="/usr/bin/brscan-skey"
PID="/var/run/brscan-skey.pid"

depend() {
        need net
}

start() {
        ebegin "Starting ${SVCNAME}..."
        start-stop-daemon -v --chuid jan:scanner --start --oknodo --quiet --pidfile $PID --startas $BRSCAN -- $ARGS
        eend $?
}

stop() {
        ebegin "Stopping ${SVCNAME}..."
        $BRSCAN -t
        start-stop-daemon --stop --retry 5 --oknodo --quiet --pidfile $PID
        eend $?
}

Und jetzt die Probleme:

1.) Ich starte das Tool (vorerst) unter meinem Benutzernamen, da ich die gescannten Bilder nachher in meinem Home liegen haben möchte. (Später werde ich wohl einen extra Scanner-User anlegen.) Trotzdem versucht das Scan-Script, das von diesem Tool aufgerufen wird, um das Bild vom Scanner zu pollen, die Dateien in /root abzulegen. Die Zeile

Quellcode

1
output_file=`mktemp ~/brscan/brscan.XXXXXX
in diesem Script verursacht daraufhin einen Fehler ("Keine Berechtigung"). Da das Ding unter meinem Usernamen laufen sollte, bin ich etwas verwirrt, wieso ~ nach /root zeigt...

2.) Eine kleine Unschönheit ist, dass ich das Teil beim Stoppen per $BRSCAN -t manuell beenden muss, statt es den start-stop-daemon machen zu lassen. Ich möchte das Programm aber nicht einfach abschießen, weil ich nicht genau weiß, ob es nicht noch was aufräumen muss, und auf --signal 15 hört es nicht.

Vielleicht hat hier jemand eine Idee?

2

07.07.2009, 10:55

Im init-Scripten sind die Umgebungsvariablen anders gesetzt, als beim manuellen Start. Ich ermute, dir fehlt $HOME. Setze diese per export vor dem start-stop-daemon, oder besser mit dem start-stop-daemon Parameter " --env HOME=VALUE".
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

3

07.07.2009, 22:48

Hey, das wars, vielen Dank. Warum steht das denn nicht in meiner Manpage?! Seltsam, das...

4

08.07.2009, 15:49

Quellcode

1
2
3
4
5
6
7
 man start-stop-daemon
/env

....
     -e, --env VAR=VALUE
             Set the environment variable VAR to VALUE.
....
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

5

08.07.2009, 20:34

Hm, liegt vielleicht an meiner deutschen Übersetzung?

Quellcode

1
2
# man start-stop-daemon | grep env
#
Naja, is ja aber auch egal, jetzt weiß ich's ja. ;-)