rc.local

Status
Für weitere Antworten geschlossen.

night2day

Benutzer
Mitglied seit
07. Mai 2008
Beiträge
228
Punkte für Reaktionen
0
Punkte
0
Hallo Leute,

mal eine dumme Frage, da ich auf Linux noch nicht recht sattelfest bin.
Nachdem ich am WE auf meine alte 407e wieder IPKG, MC und jetzt neu dnsmasq installiert habe, hat sich die CS nicht mehr sauber runterfahren lassen. Ich weis ja das optware beim shutdown nicht mehr sauber unmounted. Deshalb möchte ich auch den empfohlenen Fix durchführen.
Wie schon jemand in der Diskussion angemerkt hat, installiert sich IPKG in älteren bootstraps - offensichtlich auch in dem für den PPC - nicht nach @optware sondern opt.

in meiner rc.local steht beispielsweise:

#!/bin/sh
# Optware setup
mkdir -p /opt
[ -e /volume1/opt ] && mount -o bind /volume1/opt /opt
[ -x /opt/etc/rc.optware ] && /opt/etc/rc.optware
[ -e /bin/killall ] || ln -s /bin/busybox /bin/killall


Kann mir ein Linuxkenner diese Zeilen mal erklären?
was machen vor allem die Parameter/Anweisungen -e und -x?

Gruß
Wolfgang
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
-e prüft auf die Existenz des Files/Verzeichnisses und -x ob das File als ausführbar markiert ist
 

night2day

Benutzer
Mitglied seit
07. Mai 2008
Beiträge
228
Punkte für Reaktionen
0
Punkte
0
Ahhh, danke.
Ich wäre bald verrückt geworden.
Suche mal in Google nach Linux "-e" "-x" :)

Ist der Parameter -p beim mkdir nicht überflüssig, wenn nur eine Verzeichnisebene angelegt wird?

Und den dritten Teil bekomme ich gar nicht ind den Schädel.
Wenn die Datei killall NICHT existiert wird von /bin/busybox auf
/bin/killall ein Link gesetzt. Wofür ist sowas gut?

Gruß
 
Zuletzt bearbeitet:

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
274
Punkte
393
Hallo,
|| ist ein ODER, also wenn /bin/killall existiert tu nix, wenn nicht dann erstelle einen Softlink auf die busybox.

Gruß Götz
 

night2day

Benutzer
Mitglied seit
07. Mai 2008
Beiträge
228
Punkte für Reaktionen
0
Punkte
0
Hallo Goetz,

Hallo,
|| ist ein ODER, also wenn /bin/killall existiert tu nix, ..
Gruß Götz

Ja, so hatte ich das gemeint. Aber warum erstellt man einen Link killall auf eine Datei busybox im gleichen Ordner? Dann kann man doch gleich bei Bedarf busybox aufrufen statt killall.

Wolfgang
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
274
Punkte
393
Hallo,
busybox ist ein sogenanntes Multicallbinary, es vereint eine Menge von Standardbefehlen welche immer einzeln auf busybox verlinkt werden. Liste Dir mal den Inhalt von /bin auf, fast ausschließlich Links auf busyboy.
Rich (BBCode):
DS-209plusII> busybox
BusyBox v1.16.1 (2012-07-06 16:12:00 CST) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, [[, arp, arping, ash, awk, basename, blockdev, cat, catv, chgrp, chmod, chown, chroot, clear, cmp, cp, crond, cut, date, dd, df,
        dhcprelay, diff, dirname, dmesg, dnsdomainname, du, dumpleases, echo, egrep, env, expr, false, fdisk, fgrep, find, flock, free,
        freeramdisk, get_key_value, getopt, getty, grep, gunzip, gzip, halt, head, hostname, hwclock, id, ifconfig, ifdown, ifup, inetd,
        init, insmod, ip, ipcalc, ipcs, kill, killall, klogd, linuxrc, ln, logger, login, losetup, ls, lsmod, makedevs, mkdir, mknod,
        mkswap, modprobe, more, mount, mv, netstat, nohup, nslookup, pidof, ping, ping6, poweroff, printf, ps, pwd, readlink, realpath,
        reboot, renice, reset, rm, rmdir, rmmod, route, run-parts, sed, seq, sh, sleep, sort, stat, stty, su, swapoff, swapon, sync,
        synodd, syslogd, tail, tar, tee, telnet, telnetd, test, time, top, touch, traceroute, traceroute6, true, tty, udhcpd, umount,
        uname, uniq, unxz, uptime, usleep, vconfig, vi, wc, which, who, whoami, xargs, xz, xzcat, yes, zcat
Für killall müßte man dann "busybox killall ..." aufrufen.

Gruß Götz
 

night2day

Benutzer
Mitglied seit
07. Mai 2008
Beiträge
228
Punkte für Reaktionen
0
Punkte
0
Danke für Deine Erläuterung

Gruß
Wolfgang
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

night2day

Benutzer
Mitglied seit
07. Mai 2008
Beiträge
228
Punkte für Reaktionen
0
Punkte
0
Danke,
hab ich in der Zwischenzeit gefunden, nachdem ich mir die Befehlsdokumentation der Busybox angesehen hatte. Ich bin nebenbei bemerkt als Programmierer (bisher ausschließlich im Windows-Umfeld) kein Fan von Anweisungen, die Aliasse haben. Test - expr und [ alles für die gleiche Funktion. Sowas halte ich für unglücklich, da einheitliche Schreibweisen in unterschiedlichem Code wesentlich sauberer sind. Mit solchen Fallstricken muss sich ein Einsteiger dann rumschlagen... ;-)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
die [ und ] sparen dir ein paar Zeichen Tipparbeit :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat