Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
Quickly1971
- Beiträge: 110
- Registriert: 08.05.2009 15:26:32
Beitrag
von Quickly1971 » 29.05.2010 16:05:02
Hallo.
Ich stehe gerade auf dem Schlauch. Habe ein Script geschrieben und würde es gerne etwas verkleinern.
In dem Script werden 12 Dienste gestoppt. Kann ich diese Befehle in eine Zeile setzen?
Bisher habe ich
Code: Alles auswählen
...
/etc/init.d/postfix stop
/etc/init.d/fetchmail stop
/etc/init.d/clamav-daemon stop
/etc/init.d/clamav-freshclam stop
/etc/init.d/spamassassin stop
usw......
Kann ich diese Stop-Befehle in eine Zeile bekommen?
Vielen Dank für Eure Hilfe.
Quickly
Der Mensch hat drei Wege, klug zu werden.
Erstens durch Nachdenken: Das ist der edelste.
Zweitens durch Nachahmen: Das ist der leichteste.
Drittens durch Erfahrung: Das ist der bitterste.
-
fbartels
- Beiträge: 326
- Registriert: 20.08.2009 10:06:56
-
Kontaktdaten:
Beitrag
von fbartels » 29.05.2010 16:45:54
Hätte da eine Lösung mit zwei Zeilen für dich:
Code: Alles auswählen
SERVICE="postfix fetchmail .."
for i in $SERVICE; do /etc/init.d/$i stop; done
Gruß Felix
-
Meillo
- Moderator
- Beiträge: 9252
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 29.05.2010 16:51:38
fbartels hat geschrieben:Hätte da eine Lösung mit zwei Zeilen für dich:
Code: Alles auswählen
SERVICE="postfix fetchmail .."
for i in $SERVICE; do /etc/init.d/$i stop; done
Wenn du keine Variable verwendest und statt dessen die Namen direkt an die Stelle schreibst hast du nur noch eine Zeile. (Abgesehen davon, kannst du natürlich immer auch Zeilen mit Strichpunkten aneinander hängen.)
Use ed once in a while!
-
fbartels
- Beiträge: 326
- Registriert: 20.08.2009 10:06:56
-
Kontaktdaten:
Beitrag
von fbartels » 29.05.2010 16:59:12
@Meillo
stimmt natürlich, hat aber den Nachteil das es bei vielen Diensten schnell unübersichtlich wird.
-
ThorstenS
- Beiträge: 2875
- Registriert: 24.04.2004 15:33:31
Beitrag
von ThorstenS » 29.05.2010 18:08:16
Falls dir /etc/init.d zu viel Schreibarbeit sein sollte:
Im Paket
sysvconfig steckt das binary
service. Damit kannst du die Scripte auch beenden.
-
Meillo
- Moderator
- Beiträge: 9252
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 29.05.2010 18:21:52
fbartels hat geschrieben:@Meillo
stimmt natürlich, hat aber den Nachteil das es bei vielen Diensten schnell unübersichtlich wird.
Dem stimme ich voll zu. Ich würde es auch so machen wie du es vorgeschlagen hast. (Nur würde ich den Variablennamen in Kleinbuchstaben schreiben.)
Use ed once in a while!
-
rendegast
- Beiträge: 15041
- Registriert: 27.02.2006 16:50:33
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von rendegast » 29.05.2010 19:08:39
Einen Runlevel ohne diese Dienste?
(Bei debian sind in Grundeinstellung Runlevel 2=3=4=5)
Und dann einfach
Zudem werden sie dann auch in der richtigen Reihenfolge gestoppt bzw gestartet,
insbesondere bei Einrichtung mittels 'insserv'.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-
Saxman
- Beiträge: 4233
- Registriert: 02.05.2005 21:53:52
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: localhost
Beitrag
von Saxman » 29.05.2010 21:19:16
Quickly1971 hat geschrieben:
Bisher habe ich
Code: Alles auswählen
...
/etc/init.d/postfix stop
/etc/init.d/fetchmail stop
/etc/init.d/clamav-daemon stop
/etc/init.d/clamav-freshclam stop
/etc/init.d/spamassassin stop
usw......
Nur mal am Rande, weil Ich das hier lese und es sich noch nicht herumgesprochen hat.
The debian Way...
man invoke-rc.d hat geschrieben:All access to the init scripts by Debian packages’ maintainer scripts should be done through invoke-rc.d.
Macht auch mehr Spass da es sich schneller tippen lässt.
gegen:
-
ThorstenS
- Beiträge: 2875
- Registriert: 24.04.2004 15:33:31
Beitrag
von ThorstenS » 31.05.2010 07:25:51
Mit service sparst du dann sogar noch ein Zeichen - Vorraussetzung ist aber ein aktiviertes bash-completion
ser[TAB]ss[TAB]sto[TAB]
-
Quickly1971
- Beiträge: 110
- Registriert: 08.05.2009 15:26:32
Beitrag
von Quickly1971 » 31.05.2010 13:41:24
Vielen Dank für die aufgezeigten Wege!
Wieder was dazu gelernt.
Quickly
Der Mensch hat drei Wege, klug zu werden.
Erstens durch Nachdenken: Das ist der edelste.
Zweitens durch Nachahmen: Das ist der leichteste.
Drittens durch Erfahrung: Das ist der bitterste.