Wenn ich es logadm
auf meiner Solaris 10-Maschine ausführe, erhalte ich exe status - 1
:
Mein Ziel ist, den Befehl auszuführen mitexe status - 0
Was muss ich tun, um mein logadm
erfolgreich auszuführen und zu erhalten exe status – 0
?
star1a:/ ROOT > /usr/sbin/logadm -rv hw-alarms_2
# loading /etc/logadm.conf
# processing logname: hw-alarms_2
# /etc/logadm.conf unchanged
star1a:/ ROOT > echo $?
1
Antwort1
Wenn hw-alarms_2
es sich nicht um einen definierten Protokollnamen handelt, können Sie mit dem verwendeten Befehl keinen Exit-Status von 0 erhalten.
Ihr Befehl
logadm -rv hw-alarms_2
fordert dazu auf, Einträge, die dem Protokollnamen entsprechen, hw-alarms_2
aus der Datei /etc/logadm.conf zu entfernen.
Der Beendigungsstatus von 1
teilt Ihnen mit, dass ein Fehler aufgetreten ist. Die ausführliche Ausgabe besagt /etc/logadm.conf unchanged
, dass dies höchstwahrscheinlich daran liegt, dass Sie keinen Protokollnamen hw-alarms_2
definiert haben.
Ihnen ist schon klar, dass die -r
Option für logadm den angegebenen Protokollnamen aus logadm.conf entfernt, oder?
-R
Entfernen Sie alle Einträge, die dem angegebenen Protokollnamen entsprechen, aus /etc/logadm.conf.
Wenn Sie Ihren Befehl also einmal erfolgreich ausgeführt haben, wird dies nicht erneut getan, es sei denn, Sie ändern den Protokollnamen, um ihn zu entfernen, oder fügen den Originalnamen wieder ein.
zB einen Eintrag zu logadm.conf hinzufügen
logadm -C2 -w mylog /my/really/long/log/file/name
Lösche es
logadm -rv mylog
# loading /etc/logadm.conf
# processing logname: mylog
# writing changes to /etc/logadm.conf
echo $?
0
Versuchen Sie nun, es erneut zu löschen
logadm -rv mylog
# loading /etc/logadm.conf
# processing logname: mylog
# /etc/logadm.conf unchanged
echo $?
1
Das geht nicht, weil wir es vorher gelöscht haben. Also fügen wir es wieder hinzu
logadm -C2 -w mylog /my/really/long/log/file/name
und wieder löschen
logadm -rv mylog
# loading /etc/logadm.conf
# processing logname: mylog
# writing changes to /etc/logadm.conf
echo $?
0
Bingo!