[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: /etc/init.d/* vs. /usr/bin/env



* Andreas Pakulat (2006-01-11):
> On 11.01.06 18:28:40, Andre Berger wrote:
> > bei der Installation von DenyHosts (gegen SSH brute force attacks;
> > nicht Teil von Sarge) auf ein Sarge-System bin ich auf folgendes
> > Problem gestossen: Sowohl das beiliegende Startscript als auch
> > denyhosts.py selbst verwenden "#!/usr/bin/env python". So eingeloggt
> > kann ich das Script mit "/etc/init.d/denyhosts start" starten (als
> > root; es handelt sich dabei um ein nicht-Debian Python-Startscript,
> > das denyhosts mit der Option --daemon startet). 
> 
> Hast du den Sinn der Zeile verstanden?

Wie meinen? DenyHosts laeuft eben als Daemon und wird alle dreissig
Sekunden aktiv. Dass es als root laeuft, ist nicht optimal, aber
daran bastele ich spaeter mit Hilfe der DenyHosts-FAQ. Oder meintest
du das Shebang?

> > Um DenyHosts allerdings aus dem Runlevel aus zu starten, musste ich
> > in beiden Scripts die Interpeter-Zeile in den absoluten Pfad zum
> > Python-Binary aendern.
> 
> Hmm, wo ist das Python denn installiert? /usr/bin sollte doch auch bei
> Skripten in /etc/init.d im Pfad liegen oder irre ich mich da jetzt?

Vielen Dank, das hat mich zur Loesung gefuehrt. Ich hatte python-2.3
installiert und mit update-alternatives /etc/alternatives/python
erzeugt -- genauer gesagt manuell erzeugen muessen, da apt-get
install es nicht von sich aus tat. 

Ich stelle nun allerdings fest, dass kein Link /usr/bin/python
erzeugt wurde und "which python" auf meinen manuellen Symlink
/usr/local/bin/python zeigte. Nach dem Erzeugen von Symlinks von
/etc/alternatives/py{thon,gettext,doc} nach /usr/bin/ klappt es nun
wie gewuenscht. 

> > Waehrend /etc/init.d/denyhosts Upgrades ueberdauert, muss ich
> > denyhosts.py bei jedem Upgrade von Hand aendern, was mir zu
> > fehleranfaellig ist. 
> 
> Klaro, aber du koenntest das init.d-Skript so abaendern das die
> PATH-Variable mit dem Pfad zum python-Binary erweitert wird. Danach
> sollte env in dem denyhosts.py Skript auch den neuen PATH enthalten und
> somit python finden. 

Interessehalber: Wie setz man denn eine globale Variable in Python
auf den Wert einer Shell-Variablen? 

-Andre



Reply to: