ubuntuusers.de

rc.local

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

Krischu

Avatar von Krischu

Anmeldungsdatum:
5. März 2015

Beiträge: 146

Unter 18.04 hatte ich in /etc/init.d ein Script "

1
rc.local

", das die /etc/rc.local ausführte. Dieses Script gibt es nicht unter 22.04.

Kann ich das alte Script übernehmen?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#! /bin/sh
### BEGIN INIT INFO
# Provides:          rc.local
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist
### END INIT INFO


PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start() {
        if [ -x /etc/rc.local ]; then
                [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
                /etc/rc.local
                ES=$?
                [ "$VERBOSE" != no ] && log_end_msg $ES
                return $ES
        fi
}

case "$1" in
    start)
        do_start
        ;;
    restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
    stop|status)
        # No-op
        exit 0
        ;;
    *)
        echo "Usage: $0 start|stop" >&2
        exit 3
        ;;
esac

Moderiert von Taomon:

Passender verschoben.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9615

Wohnort: Münster

rc.local ist seit mehr als 4 Jahrzehnten obsolet und war das auch schon zu Zeiten, als Ubuntu 18.04 aktuell war. Für seine Aufgabe bieten alle Init-Systeme bessere Möglichkeiten, aktuell verwendet man bei Ubuntu Systemd-Units.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14308

Krischu schrieb:

Dieses Script gibt es nicht unter 22.04.

Kann ich das alte Script übernehmen?

Das alte Script brauchst Du nicht, denn siehe:

systemctl cat rc-local

, wenn die Datei "/etc/rc.local" vorhanden ist.

Krischu

(Themenstarter)
Avatar von Krischu

Anmeldungsdatum:
5. März 2015

Beiträge: 146

lubux schrieb:

Krischu schrieb:

Dieses Script gibt es nicht unter 22.04.

Kann ich das alte Script übernehmen?

Das alte Script brauchst Du nicht, denn siehe:

systemctl cat rc-local

, wenn die Datei "/etc/rc.local" vorhanden ist.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
root@ubuntu-4gb-hel1-1:~# systemctl cat rc-local
# /lib/systemd/system/rc-local.service
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

# /usr/lib/systemd/system/rc-local.service.d/debian.conf
[Unit]
# not specified by LSB, but has been behaving that way in Debian under SysV
# init and upstart
After=network-online.target

# Often contains status messages which users expect to see on the console
# during boot
[Service]
StandardOutput=journal+console
StandardError=journal+console
root@ubuntu-4gb-hel1-1:~# ls -l /etc/rc.local
-rw-r--r-- 1 root root 507 Sep 24 11:07 /etc/rc.local
root@ubuntu-4gb-hel1-1:~# 

(hatte ich vorhin dorthin kopiert). Also rückwärtskompatibel bis -40 Jahre. ☺

Anm: nur um Verwirrung zu vermeiden: das init.d-Script selbst hieß unter Ubuntu-18.04 auch rc.local.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14308

Krischu schrieb:

1
ConditionFileIsExecutable=/etc/rc.local
root@ubuntu-4gb-hel1-1:~# ls -l /etc/rc.local
-rw-r--r-- 1 root root 507 Sep 24 11:07 /etc/rc.local

Auch wenn eine shebang schon vorhanden, kann:

sudo chmod 755 /etc/rc.local

nicht schaden.

Krischu

(Themenstarter)
Avatar von Krischu

Anmeldungsdatum:
5. März 2015

Beiträge: 146

lubux schrieb:

Krischu schrieb:

1
ConditionFileIsExecutable=/etc/rc.local
root@ubuntu-4gb-hel1-1:~# ls -l /etc/rc.local
-rw-r--r-- 1 root root 507 Sep 24 11:07 /etc/rc.local

Auch wenn eine shebang schon vorhanden, kann:

sudo chmod 755 /etc/rc.local

nicht schaden.

Danke für den Hinweis. War im Original schon 755, nur durch das Kopieren ist das verlorengegangen. Hab's korrigiert und funktioniert.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

init-Skripte sind spätestens seit systemd obsolet, bei Ubuntu als seit 14.10. Und wird inzwischen auch von systemd ausgeführt. Für die volle Kontrolle fährst du mit systemd soweit besser. rc.local ist auch kein totes Pferd mehr, dass ist ein totes Pferd im Zustand der totalen Verwesung, um es bildlich auszudrücken. Willst du nicht benutzen.

Gruß, noisefloor

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10221

Sry noisefloor, dass ich noch was dazu schreibe.
Manchmal hilft auch im Wiki zu lesen.

https://wiki.ubuntuusers.de/Archiv/rc.local/ falls es nicht genug auffällt, da steht Archiv

Anmerkung: Die Datei rc.local ist obsolet und wurde durch Systemd-Units ersetzt.
Die Datei rc.local ist seit dem Jahre 1983 obsolet.

Sollte diese Jahreszahl kein Tippfehler sein,
🤣 dann sind es ja "nur" so knappe 40 Jahre. 🤣

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ja, aber mit systemd gibt es _wirklich_ keine Grund mehr, rc.local bzw. das alte Init-System zu nutzen. Und das ist halt seit 14.10 sein. Und auch das steht genau so im Wiki, in dem von dir verlinkten Artikel.

Gruß, noisefloor

Antworten |