Freitag, 18. Mai 2012, 15:22

Du bist nicht angemeldet.



lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

1

Donnerstag, 7. Juni 2007, 13:42

Autostart für ein paar Programme auf Debian-Server

Hallo liebe Freunde,

ich möchte auf einem debian-Server (sarge 3.1) ein paar Programme per Skript automatisch nach dem Booten starten lassen. Wie mache ich das am besten? Ich weiß, dass ich sowas als Dienst starten könnte, müsste dann aber ein entsprechendes Start-Stop-Skript schreiben. Das ist mir zu kompliziert. Wäre es sinnvoll das Skript in die /etc/inittab einzutragen und gleich dort starten zu lassen?

Herzlicher Gruß,
lacarpe
ubuntufreund No. 30
think globally, act locally

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »lacarpe« (7. Juni 2007, 13:43)


basslord

Ubuntufreund

Beiträge: 2 671

Ubuntu: 12.04

Kernel: 3.2.0-24-generic

Desktop: KDE

Architektur: 64-bit

Danksagungen: 1 / 1

  • Private Nachricht senden

2

Donnerstag, 7. Juni 2007, 14:18

Kleinigkeiten kann man in die /etc/rc.local schreiben. Dann wird das Skript mit jedem Hochfahren einmal ausgeführt.
"Ohne Musik wäre das Leben ein Irrtum." - Friedrich Nietzsche

lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

3

Donnerstag, 7. Juni 2007, 14:30

rc.local gibt es in Debian (sarge) imho nicht (in ubuntu ja).

Aber wie ich es jetzt verstehe, kann ich in /etc/rc2.d/ einfach ein Skript eintragen, dass nicht notwendigerweise wie ein klassisches Start-Stop-Skript aufgebaut sein muss, sondern schlichtweg meine Programme startet. Etwa so:

Quellcode

1
/etc/rc2.d/S99autostart
und S99autostart ist dann mein Skript mit den zu startenden Programmen.

Oder besser noch:
S99autostart ist ein symbolischer Link auf ein Skript autostart.sh irgendwo im Homeverzeichnis.
ubuntufreund No. 30
think globally, act locally

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »lacarpe« (7. Juni 2007, 14:33)


basslord

Ubuntufreund

Beiträge: 2 671

Ubuntu: 12.04

Kernel: 3.2.0-24-generic

Desktop: KDE

Architektur: 64-bit

Danksagungen: 1 / 1

  • Private Nachricht senden

4

Donnerstag, 7. Juni 2007, 14:35

Hm, wenn es das nicht gibt, würde ich das Skript nach /etc/init.d legen und dann mit den Standardrunlevels verlinken:

Quellcode

1
sudo update-rc.d scriptname defaults
"Ohne Musik wäre das Leben ein Irrtum." - Friedrich Nietzsche

Easyy-S

Boardgrafiker

Beiträge: 2 988

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

5

Donnerstag, 7. Juni 2007, 19:02

So wie lacarpe die Sache beschrieben hat, ist die Lösung doch komplett.
Ich mache das auch so.
Eine Datei erstellen, die z.B. folgenden Inhalt hat:

Quellcode

1
2
#!/bin/bash
/usr/bin/wpa2

( hier würde dann ein Programm namens 'wpa2' gestartet werden )

Die Datei legt man in /etc/init.d/ ab und erstellt in /etc/rc2.d/ einen link namens S99wpa2, der auf besagte Datei zeigt.
Ganz einfach und funktioniert schon immer. So hab ich es damals auch unter SUSE gemacht.
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

6

Freitag, 8. Juni 2007, 10:17

Danke für eure Hinweise,

dann werde ich es mal morgen in der einen oder anderen Weise ausprobieren und setze diesen Thread schon mal auf "erledigt".

Einen sonnigen Tag wünscht
lacarpe
ubuntufreund No. 30
think globally, act locally

lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

7

Samstag, 9. Juni 2007, 10:38

Arghh, über zwei Stunden habe ich gebraucht. Ein ganz dummer, kleiner Fehler - zum Nachmachen empfohlen:

Ich habe in /etc/rc2.d habe auf dieses Skript verlinkt:

Quellcode

1
2
3
#!/bin/sh
echo autotrader >> /home/lacarpe/log
Xvfb :0 -screen 0 640x480x8 &

Das Xvfb bei Neustart des Rechners nicht gestartet hat, konnte ich ja noch akzeptieren. Wird wohl noch was falsch sein, dachte ich mir. Aber das echo keine Ausgabe erzeugte, konnte ich gar nicht verstehen. Dann habe ich irgendwann dieses ausprobiert:

Quellcode

1
2
3
#!/bin/sh
/bin/echo autotrader >> /home/lacarpe/log
/usr/X11R6/bin/Xvfb :0 -screen 0 640x480x8 &

Und in der Tat, selbst echo benötigt die volle Pfadangabe in einem rc2-Skript. Hätte ich nicht gedacht. Allerdings habe ich ja auch kein echtes Start-Stop-Skript geschrieben, sondern einfach nur ein Programm gestartet. Vermutlich hätte echo ohne Pfad sogar gereicht, wenn ich mich an das Standardtemplate eines Start-Stop-Skripts gehalten hätte. Denn dort wird ja so einiges mehr noch initiiert.

Tja, man lernt nie aus.
Ein schönes wochenende euch,

lacarpe
ubuntufreund No. 30
think globally, act locally

lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

8

Samstag, 9. Juni 2007, 17:19

Ich verstehe es nicht, nun wird das Skript beim Booten anscheinend schon wieder nicht ausgeführt.

Ich habe einen symbolischen Link /etc/rc2.d/S99autostart auf dieses Skript:

Quellcode

1
2
3
4
5
6
7
8
9
10
#!/bin/sh

logfile="/home/data/log/log_sys"

/bin/echo >> $logfile
/bin/date >> $logfile
/bin/echo "*** REBOOT ***" >> $logfile
/bin/echo "start Xvfb" >> $logfile
/usr/X11R6/bin/Xvfb :0 -screen 0 640x480x8  >> $logfile &
chmod 777 $logfile


Und mit

Quellcode

1
sh /etc/rc2.d/S99autostart
wird auch alles ordnungsgemäß ausgeführt.
Nur beim Booten passiert nichts. Kein echo, kein Xvfb.

Weiß jemand Rat?

--------------------

EDIT: Ich habe es rausgefunden. Die Datei hatte keine Ausführen-Rechte. Interessant. Ich dachte immer, Root darf jederzeit alles, unabhängig von den Rechten einer Datei. Vielleicht ist es aber auch so, dass die init.d-Routine selbst vorher prüft, ob Ausführenrechte da sind (demnach hätte es nichts mit Root zu tun). Im übrigen reicht es, wenn allein der Owner Ausführen-Rechte hat, in diesem Fall also ich, lacarpe.

Weiß jemand genaueres zu diesem Sachverhalt?
ubuntufreund No. 30
think globally, act locally

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »lacarpe« (9. Juni 2007, 18:13)


Easyy-S

Boardgrafiker

Beiträge: 2 988

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

9

Sonntag, 10. Juni 2007, 11:53

Ich chmod'e so Sachen einfach immer mit 755. Wobei man eigentlich auch 777 nehmen könnte. Ein Sicherheitsrisiko stellt dein script ja nicht da. In dem Fall ist es auch egal, wer es alles lesen und nutzen darf.
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

basslord

Ubuntufreund

Beiträge: 2 671

Ubuntu: 12.04

Kernel: 3.2.0-24-generic

Desktop: KDE

Architektur: 64-bit

Danksagungen: 1 / 1

  • Private Nachricht senden

10

Sonntag, 10. Juni 2007, 13:11

Zitat

Original von Easyy-S
Ein Sicherheitsrisiko stellt dein script ja nicht da.

Naja, wenn es jeder schreibbar öffnen darf, könnte es schnell zum Sicherheitsrisiko werden ;)
"Ohne Musik wäre das Leben ein Irrtum." - Friedrich Nietzsche

Easyy-S

Boardgrafiker

Beiträge: 2 988

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

11

Sonntag, 10. Juni 2007, 13:14

OK. OK. Du hast mir überzeugt !
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

12

Sonntag, 10. Juni 2007, 13:17

Ja, nur habe ich eben gedacht, dass wenn root den Prozess ausführt, ein setzen von Ausführungsrechten etc. nicht nötig wäre. Wieder was gelernt :-)
ubuntufreund No. 30
think globally, act locally

Easyy-S

Boardgrafiker

Beiträge: 2 988

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

13

Sonntag, 10. Juni 2007, 13:21

Auch root ist ein Benutzer ;)
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier