staging.inyokaproject.org

Archiv/rc.local

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Archiv/rc.local.

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3271

@Max-Ulrich: ich finde auf die Schnelle keine Quelle, daß entweder SysV im Allgemeinen oder rc.local im Speziellen "deprecated" sind. Wenn Du eine kennst, solltest Du sie verlinken.

Ich denke, daß SysV noch sehr lange verwendet werden wird. Selbst wenn Debian als "Upstream" irgendwann mal auf etwas anderes umstellt. Warum sollte man Dienste die funktionieren und die keine Abhängigkeiten haben anpassen? Zumal es immer noch keine einfache Möglichkeit gibt, ein Deb-Package zu bauen, daß automatisch SysV oder Upstart einrichtet, je nachdem ob es auf Debian oder Ubuntu installiert wird (sollte es doch eine geben, wäre ich für eine Info dankbar 😀 ).

@adun: im Artikel wird gar nicht behauptet, daß rc.local als Letztes läuft ...

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

linrunner schrieb:

@Max-Ulrich: ich finde auf die Schnelle keine Quelle, daß entweder SysV im Allgemeinen oder rc.local im Speziellen "deprecated" sind. Wenn Du eine kennst, solltest Du sie verlinken.

Die Situation um rc.local ist - gelinde gesagt - verworren. Lt. packages.ubuntu.com duerfte /etc/rc.local gar nicht existieren (obwohl sie trotzdem vorhanden ist), sondern taucht als /etc/init.d/rc.local im System auf. Konkret liest aber /etc/init.d/rc.local die Datei /etc/rc.local aus.

Den Vermerk "deprecated" hatte ich im August 2010 eingefuegt, finde aber die Quelle dazu nicht mehr. Hatte irgendetwas mit Upstart zu tun. Was ich mir zusammenreimen koennte: Funktionen aus /etc/init.d sind ja zum Teil nach /etc/init gewandert. In diesem Zusammengang ist /etc/init.d tatsaechlich teilweise deprecated.

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3271

aasche schrieb:

duerfte /etc/rc.local gar nicht existieren (obwohl sie trotzdem vorhanden ist)

Einspruch:

grep /etc/rc.local /var/lib/dpkg/info/*

zeigt Dir wo sie herkommt:

initscripts.postinst:# Create /etc/rc.local on first time install and when upgrading from
initscripts.postinst:	if [ ! -e /etc/rc.local ]; then
initscripts.postinst:		cat << EOF > /etc/rc.local
initscripts.postinst:		chmod 755 /etc/rc.local

Der Beweis, daß rc.local deprecated ist, ist IMHO bisher nicht erbracht. Von /etc/init.d/ ganz zu schweigen ☺.

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

Die ich trotz intensiver Suche keine aktuelle Quelle auftreiben kann, die den Sachverhalt "rc.local deprecated" bestaetigt, habe ich:

Hinweis:

Ab Ubuntu 10.04 Lucid Lynx werden Einträge in dieser Datei – durch Upstart bedingt – als "deprecated" bezeichnet. Praktisch heisst das, dass dieser Mechanismus in späteren Ubuntu-Versionen entfallen kann.

im Artikel vorerst auskommentiert.

primus_pilus Team-Icon

Ehemalige
Avatar von primus_pilus

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 9144

Ich habe heute – zufällig – die Lösung für das Problem gefunden, dass die rc.local scheinbar nicht ausgeführt wird. Der Grund ist einfach, dass bei einem Fehler im Skript die Bearbeitung abgebrochen wird. Die nachfolgenden Zeilen werden dann nicht mehr ausgeführt.

Einige Kommentare im entsprechenden Bugreport scheinen das zu bestätigen.

Ubunux

Avatar von Ubunux

Anmeldungsdatum:
12. Juni 2006

Beiträge: 16178

nicht, dass ich nicht selbst dort suchen könnte, aber ein Link zum entsprechenden Bugreport wäre nett gewesen. ☺

primus_pilus Team-Icon

Ehemalige
Avatar von primus_pilus

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 9144

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3271

Je nach Sichtweise ist das ein Bug oder ein Feature. Ich hab es mal ausführlicher erklärt.

xubuntufriese

Avatar von xubuntufriese

Anmeldungsdatum:
3. Mai 2014

Beiträge: 340

Moin,

ich habe grade mal testweise mit einem Script in /etc/rc.local rumgespielt, mit dem sonderbaren Ergebnis, daß das Programm sensors keine "°" liefert, wenn es per /etc/rc.local als root ausgeführt wird.

Eine normale Anzeige:

mj@mj-desktop:~$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +33.0°C  (high = +76.0°C, crit = +100.0°C)
Core 1:       +36.0°C  (high = +76.0°C, crit = +100.0°C)

nouveau-pci-0100
Adapter: PCI adapter
temp1:        +49.0°C  (high = +95.0°C, hyst =  +3.0°C)
                       (crit = +122.0°C, hyst =  +2.0°C)
                       (emerg = +135.0°C, hyst =  +5.0°C)

mj@mj-desktop:~$ sudo sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +34.0°C  (high = +76.0°C, crit = +100.0°C)
Core 1:       +36.0°C  (high = +76.0°C, crit = +100.0°C)

nouveau-pci-0100
Adapter: PCI adapter
temp1:        +49.0°C  (high = +95.0°C, hyst =  +3.0°C)
                       (crit = +122.0°C, hyst =  +2.0°C)
                       (emerg = +135.0°C, hyst =  +5.0°C)

mj@mj-desktop:~$ sudo su
root@mj-desktop:/home/mj# sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +32.0°C  (high = +76.0°C, crit = +100.0°C)
Core 1:       +35.0°C  (high = +76.0°C, crit = +100.0°C)

nouveau-pci-0100
Adapter: PCI adapter
temp1:        +49.0°C  (high = +95.0°C, hyst =  +3.0°C)
                       (crit = +122.0°C, hyst =  +2.0°C)
                       (emerg = +135.0°C, hyst =  +5.0°C)

root@mj-desktop:/home/mj# 

Die (in ein Log umgeleitete) Anzeige vom per /etc/rc.local gestarteten Script, welches sensors aufruft:

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +32.0 C  (high = +76.0 C, crit = +100.0 C)
Core 1:       +35.0 C  (high = +76.0 C, crit = +100.0 C)

nouveau-pci-0100
Adapter: PCI adapter
temp1:        +49.0 C  (high = +95.0 C, hyst =  +3.0 C)
                       (crit = +122.0 C, hyst =  +2.0 C)
                       (emerg = +135.0 C, hyst =  +5.0 C)

Weiß jemand warum das so ist? Was fehlt root zu dem Zeitpunkt?

Holger63

Avatar von Holger63

Anmeldungsdatum:
8. Juni 2006

Beiträge: 695

xubuntufriese schrieb:

Weiß jemand warum das so ist? Was fehlt root zu dem Zeitpunkt?

Wahrscheinlich sind die locale-Einstellungen nicht gesetzt. Versuche es mal mit

1
LANG=de_DE.UTF-8 sensors

Gruß, Holger

xubuntufriese

Avatar von xubuntufriese

Anmeldungsdatum:
3. Mai 2014

Beiträge: 340

Holger63 schrieb:

1
LANG=de_DE.UTF-8 sensors

Treffer und versenkt! 👍 Danke.

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Den Abschnitt zur Aktivierung der rc.local bei systemd können wir spätestens ab Beginn Juli, um das Auslaufen von 15.10 herum, wohl als "optional manuell" markieren: Forum.

noisefloor Team-Icon

Ehemaliger
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

es kann wohl auch in die Einleitung der Hinweis, dass man rc.local unter systemd Systemen nicht wirklich braucht, sondern das mit Service Units regeln kann.

Gruß, noisefloor

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Frage dazu: Es gibt die Dateien /lib/systemd/system/rc-local.service und /lib/systemd/system/rc.local.service, die beide den selben Inhalt haben. Aktiviert ist bei mir die rc-local.

Sollte man vielleicht erwähnen, dass es diesen Unterschied gibt oder hoffen, dass zukünftige HowTo's und Tutorials sich auf das rc-local.service beschränken? Ich gehe stark davon aus, dass alles doppelt ausgeführt wird, sollte beides aktiviert sein...

noisefloor Team-Icon

Ehemaliger
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

das eine ist nur ein Link auf den anderen:

noisefloor@TP-E550:/lib/systemd/system$ ls -la rc*
-rw-r--r-- 1 root root  612 Mai 12 11:39 rc-local.service
lrwxrwxrwx 1 root root   16 Mai 12 11:39 rc.local.service -> rc-local.service
lrwxrwxrwx 1 root root    9 Mai 12 11:39 rc.service -> /dev/null
lrwxrwxrwx 1 root root    9 Mai 12 11:39 rcS.service -> /dev/null 

Gruß, noisefloor