Hallo,
Ich kann meinen Wunsch nicht so ganz in klare Worte fassen, versuch das aber trotzdem mal:
Wenn man über apt-get install einen Service installiert der auch ein Init-Script anlegt wird selbiges ja beim Booten automatisch ausgeführt. Ich hätte jetzt gern, dass das per Default nicht gestartet wird. Geht sowas?
Ich weiß zwar, dass ich das händisch mit update-rc.d nach der Installation deaktivieren kann, fände das aber schöner wenn das umgekehrt wäre. Also nach der Installation wird der Service beim booten nicht gestartet, es sei denn ich aktiver ihn über update-rc.d per Hand (wie bei Gentoo).
Gruß,
crhn
[gelöst] Init-Script disabled by default
[gelöst] Init-Script disabled by default
Zuletzt geändert von crhn am 23.12.2011 20:53:44, insgesamt 2-mal geändert.
Re: Init-Script disabled by default
Vielleicht kannst Du über apt.conf ein Skript einbinden,
daß nach Installation eines Paketes auf neue Dienste in /etc/init.d/ prüft und diese erstmal deaktiviert
(zBsp durch Umwandlung von gesetzten Sxx-Links in Kxx-Links)
und einen gegebenenfalls gestarteten Dienst direkt wieder stoppt.
Möglicher Showstopper dabei: Nicht immer ist bei einer Paket / /etc/init.d/Dienst-Kombination "Paket"="Dienst".
Bsp.
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true";
DPkg::Post-Invoke:: "apt-get clean"; (mein Aufräumer)
'man apt.conf' gibt noch "DPkg::Pre-Invoke::"
post-invoke wird nach einem kompletten Arbeitsdurchgang aufgerufen, nicht für jedes Paket.
Ihm wird also IMO kein Paketname mehr als Option übergeben.
Ein dort eingesetztes Wrapper-Skript sollte also damit umgehen können.
Beachte auch:
Andere denkbare Möglichkeit wäre, dem Debconf (/usr/sbin/dpkg-reconfigure) beizubringen,
neben dem /var/lib/dpkg/info/Paket.postinst noch weitere eigene Skripte abzuarbeiten,
das könnte aber in üblen Hacks enden.
Die /etc/init.d/ sind ja nicht immer aktiviert resp. auf Ausführung geschaltet,
verlangen manchmal zBsp. erst nach expliziter Freigabe, meist über eine Option in /etc/default/Paket.
Diese Paketeigenschaft über eine wish-Bugmeldung zu ändern gebe ich wenig Chancen,
da dies das gewohnte Verhalten für die bisherigen Benutzer des jeweiligen Paketes ändern würde,
und Maintainer sowas meist ablehnend gegenüberstehen dürften -- aber wer weiß.
daß nach Installation eines Paketes auf neue Dienste in /etc/init.d/ prüft und diese erstmal deaktiviert
(zBsp durch Umwandlung von gesetzten Sxx-Links in Kxx-Links)
und einen gegebenenfalls gestarteten Dienst direkt wieder stoppt.
Möglicher Showstopper dabei: Nicht immer ist bei einer Paket / /etc/init.d/Dienst-Kombination "Paket"="Dienst".
Bsp.
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true";
DPkg::Post-Invoke:: "apt-get clean"; (mein Aufräumer)
'man apt.conf' gibt noch "DPkg::Pre-Invoke::"
post-invoke wird nach einem kompletten Arbeitsdurchgang aufgerufen, nicht für jedes Paket.
Ihm wird also IMO kein Paketname mehr als Option übergeben.
Ein dort eingesetztes Wrapper-Skript sollte also damit umgehen können.
Beachte auch:
Pre-Invoke, Post-Invoke
Dies ist eine Liste von Shell-Befehlen, die vor/nach dem Aufruf von dpkg(1) ausgeführt
werden. Wie options muss dies in Listenschreibweise angegeben werden. Die Befehle werden
der Reihenfolge nach mit /bin/sh aufgerufen, sollte einer fehlschlagen, wird APT
abgebrochen.
Andere denkbare Möglichkeit wäre, dem Debconf (/usr/sbin/dpkg-reconfigure) beizubringen,
neben dem /var/lib/dpkg/info/Paket.postinst noch weitere eigene Skripte abzuarbeiten,
das könnte aber in üblen Hacks enden.
Die /etc/init.d/ sind ja nicht immer aktiviert resp. auf Ausführung geschaltet,
verlangen manchmal zBsp. erst nach expliziter Freigabe, meist über eine Option in /etc/default/Paket.
Diese Paketeigenschaft über eine wish-Bugmeldung zu ändern gebe ich wenig Chancen,
da dies das gewohnte Verhalten für die bisherigen Benutzer des jeweiligen Paketes ändern würde,
und Maintainer sowas meist ablehnend gegenüberstehen dürften -- aber wer weiß.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Init-Script disabled by default
Danke für die ausführliche Antwort.
Ich hatte ja gehofft, dass es irgendwo ne Flag gibt das sich einfach setzen lässt. Selbst sowas basteln kommt mir immer nen bisschen unsauber vor und befriedigt mich nicht ganz
Da hab ich auch schon dran gedacht. Ich wusste nur nicht wie ich das komfortabel nach apt laufen lassen kann, aber über apt.conf ist das ja recht einfach. Ich werd das so mal probieren, da es sich nur um ein Desktop System handelt ist's auch nicht so schlimm wenn ich was zerschieß.rendegast hat geschrieben:Vielleicht kannst Du über apt.conf ein Skript einbinden,
daß nach Installation eines Paketes auf neue Dienste in /etc/init.d/ prüft und diese erstmal deaktiviert
Ich hatte ja gehofft, dass es irgendwo ne Flag gibt das sich einfach setzen lässt. Selbst sowas basteln kommt mir immer nen bisschen unsauber vor und befriedigt mich nicht ganz
Das würde mich am allermeisten verwirren...rendegast hat geschrieben:Diese Paketeigenschaft über eine wish-Bugmeldung zu ändern gebe ich wenig Chancen,
da dies das gewohnte Verhalten für die bisherigen Benutzer des jeweiligen Paketes ändern würde
Re: [gelöst] Init-Script disabled by default
hi,
Edit: OT; funktioniert hier nur, weil bei Updates sowieso neu gebootet wird (und selbst dann nicht im Sinne des OP).
ich hab' das Übel praktisch mit der Wurzel ausgerottet und in der /etc/inittab die Einträge für /etc/init.d/rcS und /etc/init.d/rc durch was eigenes ersetzt. Das sind die einzigen Änderungen, der ganze restliche init-Mechanismus bleibt unverändert und wird einfach nicht benutzt. Damit wird das gestartet, was in meinem Start-Script steht, nicht mehr und nicht weniger und irgendwelche Updates dürfen ungstört machen, was sie wollen. Leider muss man etwas mehr Aufwand treiben, damit es auch bei Bootloader-Updates keine Tränen gibt.
Damit man auch ein Original-Debian starten kann, sucht mein rcS in /proc/cmdline nach einem magischen Boot-Parameter, und wenn der fehlt, macht es ein "exec /etc/init.d/rcS". Das braucht man vor allem für den Vergleich, um wieviel schneller die eigene init-Mechanik ist
Edit: OT; funktioniert hier nur, weil bei Updates sowieso neu gebootet wird (und selbst dann nicht im Sinne des OP).
ich hab' das Übel praktisch mit der Wurzel ausgerottet und in der /etc/inittab die Einträge für /etc/init.d/rcS und /etc/init.d/rc durch was eigenes ersetzt. Das sind die einzigen Änderungen, der ganze restliche init-Mechanismus bleibt unverändert und wird einfach nicht benutzt. Damit wird das gestartet, was in meinem Start-Script steht, nicht mehr und nicht weniger und irgendwelche Updates dürfen ungstört machen, was sie wollen. Leider muss man etwas mehr Aufwand treiben, damit es auch bei Bootloader-Updates keine Tränen gibt.
Damit man auch ein Original-Debian starten kann, sucht mein rcS in /proc/cmdline nach einem magischen Boot-Parameter, und wenn der fehlt, macht es ein "exec /etc/init.d/rcS". Das braucht man vor allem für den Vergleich, um wieviel schneller die eigene init-Mechanik ist
Zuletzt geändert von cosmac am 26.12.2011 16:33:32, insgesamt 2-mal geändert.
Beware of programmers who carry screwdrivers.
Re: [gelöst] Init-Script disabled by default
Aber was ist mit diesen Kandidaten
(Auszug, Startbefehle könnten auch dingsbums-codiert sein oder über zwei Zeilen gehen.):
(Auszug, Startbefehle könnten auch dingsbums-codiert sein oder über zwei Zeilen gehen.):
Code: Alles auswählen
$ egrep "/etc/init.d/.*start" /var/lib/dpkg/info/*postinst | sort /var/lib/dpkg/info/acpid.postinst: /etc/init.d/acpid start || exit $? /var/lib/dpkg/info/arpalert.postinst: /etc/init.d/arpalert start || exit $? /var/lib/dpkg/info/autofs5.postinst: /etc/init.d/autofs start || exit $? /var/lib/dpkg/info/binfmt-support.postinst: /etc/init.d/binfmt-support start || true /var/lib/dpkg/info/clamav-freshclam.postinst: IFACE="$intrface" /etc/init.d/clamav-freshclam start || true /var/lib/dpkg/info/clamav-freshclam.postinst: /etc/init.d/clamav-freshclam start /var/lib/dpkg/info/console-common.postinst: /etc/init.d/keymap.sh start || exit $? /var/lib/dpkg/info/console-tools.postinst: /etc/init.d/console-screen.sh start || exit $? /var/lib/dpkg/info/cups.postinst: /etc/init.d/cups start || exit $? /var/lib/dpkg/info/dbus.postinst: /etc/init.d/dbus start || exit $? /var/lib/dpkg/info/dovecot-common.postinst: /etc/init.d/dovecot start || exit $? /var/lib/dpkg/info/dovecot-imapd.postinst: /etc/init.d/dovecot restart /var/lib/dpkg/info/ebtables.postinst: /etc/init.d/ebtables start || exit $? /var/lib/dpkg/info/fcron.postinst: /etc/init.d/fcron start || exit $? /var/lib/dpkg/info/fetchmail.postinst: /etc/init.d/fetchmail start || true /var/lib/dpkg/info/fuse-utils.postinst: /etc/init.d/fuse start || exit $? /var/lib/dpkg/info/haveged.postinst: /etc/init.d/haveged start || exit $? /var/lib/dpkg/info/initscripts.postinst:# /etc/init.d/mountkernfs.sh start /var/lib/dpkg/info/libc6.postinst: echo "You will need to start these manually by running \`/etc/init.d/<service> start'" /var/lib/dpkg/info/lighttpd.postinst: /etc/init.d/lighttpd start || exit $? /var/lib/dpkg/info/openssh-server.postinst: /etc/init.d/ssh restart /var/lib/dpkg/info/procps.postinst: /etc/init.d/procps start || exit $? /var/lib/dpkg/info/rsync.postinst: /etc/init.d/rsync restart /var/lib/dpkg/info/samba.postinst: /etc/init.d/samba start || exit $? /var/lib/dpkg/info/sysfsutils.postinst: /etc/init.d/sysfsutils start || exit $? /var/lib/dpkg/info/udev.postinst: [ -x /etc/init.d/$script ] && invoke-rc.d $script restart || true /var/lib/dpkg/info/winbind.postinst: /etc/init.d/winbind start || exit $? /var/lib/dpkg/info/x11-common.postinst: /etc/init.d/x11-common start || exit $? /var/lib/dpkg/info/xen-utils-common.postinst: /etc/init.d/xend start || exit $?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")