• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Autostart funktioniert nicht richtig

Jerry95

Newbie
Hallo erstmal,

also ich mache zur Zeit meine ersten Gehversuche mit Linux und zu aller erst dachte ich mal an ein Internetgateway.
Also habe SUSELinux 11.4 in minimaler Serverinstallation + Squid 2 Stable installiert. Alle Updates für SUSE und Co geladen und installiert.
Meine squid.conf habe ich testweise konfiguriert:
Code:
TAG: acl
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 192.168.100.0/255.255.255.0
acl sperr url_regex „/etc/squid/sperrliste.txt“
acl Whiteclients src „/etc/squid/whiteclients.txt”
acl ausnahme url_regex „/etc/squid/keinesperre.txt“
acl SSL-ports port 443
acl Safe_ports port 80			#http
acl Safe_ports port 21			#ftp
acl Safe_ports port 443			#https
acl Safe_ports port 70 			#gopher
acl Safe_ports port 210			#wais
acl Safe_ports port 1025-65535		#unregistered ports
acl Safe_ports port 280			#hhtp-mgmt
acl Safe_ports port 488			#gss-http
acl Safe_ports port 591			#filemaker
acl Safe_ports port 777			#multiling http
acl CONNECT method CONNECT
TAG: http_access
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny sperr
http_access allow whiteclients
http_access allow ausnahme
http_access allow localnet
http_access allow localhost
http_access deny all
TAG: icp_access
Icp_access allow localnet
Icp_access deny all
TAG: http_port
http_port 3128
TAG: hierarchy_stoplist
hierarchy_stoplist cgi-bin ?
TAG: access_log
Access_log /var/log/squid/access.log squid
TAG: refresh_pattern
refresh_pattern 	^ftp:			1440	20%	10080
refresh_pattern 	^gopher:		1440	0%	1440
refresh_pattern 	–i (cgi-bin/|\?		0	0%	0
refresh_pattern 	.			0	20%	4320
TAG: upgrade_http0.9
acl shoutcast rep_header X-HTTP09-First_Line ^ICY.[0-9]
Upgrade_http0.9 deny shoutcast
TAG: broken_ vary_encoding
acl apache rep_header Server  ^Apache
Broken_vary_encoding allow abache
TAG: cache_mgr
cache_mgr test@test.de (Adresse geändert!)
TAG: error_directory
error_directory /usr/share/squid/errors/German
TAG: coredump_dir
coredump_dir /var/cache/squid

Es gibt bestimmt noch tausende Verbesserungsvorschläge, aber für die ersten Gehversuche reicht es.
Wenn ich jetzt Squid mit "squid -NCd1" starte funktioniert alles einwandfrei, auch wenn ich squid mit "/etc/init.d/squid start" starte funktioniert der Proxy so wie gewollt.

Jetzt gang es um den Autostart, ich habe folgendes versucht:

Einen link von /etc/init.d/squid in rc2.d, rc3.d, oder rc5.d gelegt, squid will nicht starten.
Dann mit insserv -d squid, läuft auch nicht
Dann habe ich es mit yast2 probiert (Fehler!), squid startet zwar, aber mit falschen Einstellungen und meine squid.conf wurde verändert. Durfte dann komplett von vorne anfangen.

Ich habe keine Ahnung was ich verkehrt mache, wie gesagt mit "/etc/init.d/squid start" in die Komandozeile als root und alles funktioniert, lege ich Links ("ln -s /etc/init.d/squid K10(S20)squid" in die entsprechenden Runlevels, nichts.

Habe auch schon versucht einfach eine Datei mit dem Inhalt "/etc/init.d/squid start" in die Runlevels zu legen, alber das scheint unter Linux anders zu funktionieren.

Hat Jemand einen Tip wie ich Squid automatische gestartet bekomme und alles immer noch funktioniert so wie es sein soll?
 

spoensche

Moderator
Teammitglied
Du musst die Links in den einzelnen rcx.d Verzeichnissen nicht manuell anlegen.
Mit
Code:
insserv -d squid
werden die Links für den Squid in den Defaultrunleveln angelegt, aber der Squid nicht gestartet. (bei Systemstart wird er dann gestartet)
Starten kannst du Squid mit
Code:
/etc/init.d/squid start
.

Poste mal die Ausgabe von:
Code:
chkconfig -l | grep squid

Beim posten von Befehlen und Ausgaben bitte die Code-Tags verwenden.

Was sagen die Logfiles vom Squid?
 
OP
J

Jerry95

Newbie
Hallo

Was sagen die Logfiles vom Squid?
:q:

Das habe ich erst jetzt gesehen!

Also ich weiß ja nicht welche, aber in der access.log steht immer wenn der Server nicht richtig funktioniert TCP_MISS drinn in der Liste wie z.B.:#
Code:
1314705567.478    64 192.168.100.60.TCP_MISS/504 12690 GET http://www.google.de/ DIECT/209.85.148.103 text/html
ansonsten sind die Einträge aus der Zeit wo es funktioniert TCP_DENIED und TCP_REFRESH.

In der cache.log steht eigentlich immer das gleiche egal ob es geht oder nicht.

In der rcsquid.log steht nichts!

Und in der Swap.log steht ja eigentlich nur die Einträge drinn mit RELEASE und SWAPOUT, da dürfte ja nichts drinn sein wo interessant ist!

Gruß aus dem Fichtelgebirge
Gerald
 
OP
J

Jerry95

Newbie
Hallo,

irgendwie ist meine erste Antwort verschwunden!

spoensche schrieb:
Du musst die Links in den einzelnen rcx.d Verzeichnissen nicht manuell anlegen.
Mit
Code:
insserv -d squid
werden die Links für den Squid in den Defaultrunleveln angelegt, aber der Squid nicht gestartet. (bei Systemstart wird er dann gestartet)
Starten kannst du Squid mit
Code:
/etc/init.d/squid start
.

Poste mal die Ausgabe von:
Code:
chkconfig -l | grep squid

Beim posten von Befehlen und Ausgaben bitte die Code-Tags verwenden.

Was sagen die Logfiles vom Squid?

Also ich denke ich hätte es schon geschrieben, starte ich squid mit

Code:
/etc/init.d/squid start

funktioniert Squid wie er soll.
Ich kann ins Internet und Seiten die ich in meiner Sperrliste habe, werden von Squid verhindert und es kommt entsprechende HTML Seite.

Habe ich das Startscript in den entsprechenden rcX.d, wird zwar Squid gestartet, aber ich kann mit der Windowskiste nicht ins Internet, bei jeder Seite kommt die Meldung das die entsprechende Seite zur Zeit nicht erreichbar ist.

Jetzt zu deinen Befehl den ich ausführen sollte:
Code:
chkconfig -l | grep squid

Meldungen kommen in der nächsten Antwort
 
OP
J

Jerry95

Newbie
Hallo,

also wenn ich squid mit
Code:
squid -NCd1
starte, dann:

Code:
chkconfig -l | grep squid
squid            0:off  1:off  2:off  3:off  4:off  5:off  6:off

Internet am Windows PC funktioniert wie es soll.

wenn ich squid mit
Code:
/etc/init.d/squid start
starte, dann:

Code:
chkconfig -l | grep squid
squid            0:off  1:off  2:off  3:off  4:off  5:off  6:off

Internet am Windows PC funktioniert wie es soll.

Wenn ich Squid nun per
Code:
insserv -d squid
ind die entsprechenden Runlevels eintragen lasse kommt:

Code:
chkconfig -l | grep squid
squid            0:off  1:off  2:off  3:on  4:off  5:on  6:off

Jetzt starte ich den Server neu mit
Code:
shutdown -r now

Ich verstehe es nicht! Jetzt auf einmal geht es???

Ich habe gestern bereits mit diesen Inserv befehl es in die entprechenden Runlevels kopiert, danach funktionierte Das internet nicht mehr an der Windows Kiste, jetzt geht es auf einmal!

Habe Vorgestern es bestimmt 3x mit inserv -d squid -> Neustart versucht Ergebniss kein Internet, danach wieder alles aus rcX.d rausgelöscht neu gestartet und mit /etc/init.d/squid start squid gestartet, Internet ging!.

Dann habe ich es mit chkconfig squid on versucht, das gleiche! Und heute geht es auf einmal????

Jetzt starte ich den Server nochmal neu...

Es funktioniert immer noch, keine Ahnung was da Gestern und Vorgestern war? Es war immer die gleiche virtuelle Maschine, ich habe extra Sicherheitskopien gemacht damit ich gemachte Änderungen jeder Zeit voll rückgänig machen kann. So habe ich auch heute wieder mit einer neuen Kopie der vor 3 Tagen gemachte Kopie gearbeitet. Das soll noch mal einer verstehen?

Auf jeden Fall mal vielen, vielen Dank.

Jetzt geht es an das nächste Problem, aber in einem neuen Tread
 

spoensche

Moderator
Teammitglied
Mit
Code:
chkconfig
kannst du überprüfen, ob ein Daemon (bei dir der Squid) in welchen Runleveln er gestartet wird. Steht überall ein "off", ist der autom. Start deaktiviert.

Die Ursache deines Problems war, dass du die Symlinks in den rcx.d Verzeichnissen manuell angelegt bzw. gelöscht hast. Das Manuelle anlegen der Symlinks, sollte man nur machen, wenn man weiss, was beim Systemstart wann und wie ausgeführt wird. Manuelles anlegen der Symlinks ist heute i.d.R. nicht mehr nötig, aber es gibt einige Aussnahmen.

Wenn das Problem gelöst ist, dann erledige bitte noch die Formalitäten: http://www.linux-club.de/viewtopic.php?f=7&t=81378
 
OP
J

Jerry95

Newbie
Hallo Tomm.fa

tomm.fa schrieb:

ich wußte nicht das sowas nicht gern gesehen wird, vor allem wenn ich am ende in jedem Forum quasi auch die Lösung poste.
Ich habe es deshalb gemacht, da ich in einen dritten Forum die gleiche Frage eingestellt habe und nach einigen Tagen keine Antwort hatte.
Mir ist es auch schon in anderen Foren passiert das ich ein Forum erwischte, meine Frage gestellt habe und Tage später feststellte das in diesem Forum außer mir seit 3 Jahren keiner mehr was geschrieben hat!
Ich bin halt noch verwöhnt aus der Zeit vor dem Internet. Im Mausnet früher stellte man eine Frage und innerhalb eines Tages hatte man oft vom Programmentwickler selbst die Lösung. Aber da gab es halt für jedes Programm quasi ein einziges Forum, dort laßen auch meistens die Programmierer mit. Tja wenn man da eine Frage hatte, stellte man diese und man bekam ein paar richtige antworten, falsche waren da nie dabei. Heute frägt man Google, bekommt mehrere Hunderttausende von Antworten und wenn man viel Glück hat, ist auch die richtige irgendwo dabei.
Heute gibt es keine Ahnung wieviel Linux-Foren. Die vielen die wirklich eine Ahnung haben und auch in Foren sich beteiligen sind nicht viele. Und diese verteilen sich dann auf diese vielen Foren. Als Linux Anfänger bin ich auch etwas am aussortieren welches Forum das richtige ist, das sieht man aber z. B. auch an den Antworten die man direkt vergleichen kann. So habe ich jetzt schon einige Linux-Foren aus meinen Lesezeichen wieder gelöscht.
Also, ich werde versuchen das in Zukunf nur noch im richtigen Forum zu posten.

Gruß aus dem Fichtelgebirge
Gerald
 
OP
J

Jerry95

Newbie
Hallo spoensche

spoensche schrieb:
Mit
Code:
chkconfig
kannst du überprüfen, ob ein Daemon (bei dir der Squid) in welchen Runleveln er gestartet wird. Steht überall ein "off", ist der autom. Start deaktiviert.

Die Ursache deines Problems war, dass du die Symlinks in den rcx.d Verzeichnissen manuell angelegt bzw. gelöscht hast. Das Manuelle anlegen der Symlinks, sollte man nur machen, wenn man weiss, was beim Systemstart wann und wie ausgeführt wird. Manuelles anlegen der Symlinks ist heute i.d.R. nicht mehr nötig, aber es gibt einige Aussnahmen.

Wenns denn so einfach wäre. Ich sagte ja bereits, das ich bereits mit yast2 versucht habe den autostart zu aktivieren und das ich auch diesen insserv Befehl mehrfach angewendet habe.
Nein ich habe an der Maschine nichts weiter verändert, denn ich habe folgendes gemacht. Am 29.08.machte ich eine Sicherheitskopie meiner virtuellen Maschine und jeden einzelnen Versuch machte ich auf einer extra neu erstellten Kopie dieser virtuellen Maschine. Das mache ich eigentlich immer so, denn wenn mal was richtig in die Hose geht, bin ich mit ein paar Mausklicks wieder zurück. Gut ich muss zwar bei jeder Kopie knapp eine halbe Stunde warten, aber man hat ja auch noch was anderes zu tun.

Gruß Gerald

PS: Ich weiß bis jetzt nicht warum es auf einmal funktioniert, das einzige was ich beim letzten mal nicht gemacht habe, ist das ich vorher mit
Code:
squid -NCd1
Squid getestet habe. Aber bei einer neuen Kopie meiner virtuelle Maschine, zu erst Squid getestet mit
Code:
squid -NCd1
, dann
Code:
Ctrl - C
, dann
Code:
insserv -d squid
Code:
shutdown -r now
und Squid lief auch. Also igendwie ist es nicht nachvollziehbar. Vielleicht lag es an irgendeiner anderen Komponenten in unseren Netzwerk? Aber was solls, ich habe schon in Windows gelernt, man darf nicht immer versuchen alles zu verstehen.
 

spoensche

Moderator
Teammitglied
Jerry95 schrieb:
Aber was solls, ich habe schon in Windows gelernt, man darf nicht immer versuchen alles zu verstehen.

Und genau das ist der falsche Weg. Manchmal dauert es etwas länger bis man etwas versteht. Und vor allem ist Linux kein Windows.
 
OP
J

Jerry95

Newbie
Hallo

spoensche schrieb:
Jerry95 schrieb:
Aber was solls, ich habe schon in Windows gelernt, man darf nicht immer versuchen alles zu verstehen.

Und genau das ist der falsche Weg. Manchmal dauert es etwas länger bis man etwas versteht. Und vor allem ist Linux kein Windows.

Und was sollte ich dann deiner Meinung nach tun?

Soll ich jetzt immer wieder eine Kopie meiner virtuellen Maschine erstellen, die entsprechenden Befehle ausführen und warten bis Squid nicht funktioniert?
Vorher vielleicht sämtliche Server und Netzwerkkomponenten genau unter die Lube nehmen? Bei uns laufen ca. momentmal, Mailgateway, Internet-Gateway, Groupwise Server, Novell-Server, Windows-Server und was weiß ich noch alles auf dem ESX Server, oft auch ein Fremder Server oder PC, das ändert sich ständig da ich in einen Systemhaus arbeite.
Klar wäre es gut zu wissen an was es genau gelegen hat, aber das kann Tage, Woche, Monate oder gar sich nie aufklären.

Schau ich war letztens bei einem Kunden. Ein Windows Server, 5 PCs und zwei Netzwerkdrucker. Ein Netzwerkdrucker geht auf ein mal nicht mehr. Der Netzwerkdrucker reagierte nicht mehr auf die IP 192.168.0.200.
Selbst das trennen sämtlicher Geräte vom Netz, einschließlich dem Switch. Das zurücksetzten des Druckers auf Werkseinstellungen und ein anschliesendes neu einstellen der IP, ich konnte mit meinem Notebook den Drucker nicht auf der 192.168.0.200 ansprechen. Mein Notebook hatte die 192.168.0.222 und ansonsten war nur ein kleiner 5-Port Sqitch noch im Netz. Allerdings funktionierte der Drucker einwandfrei auf die IP 192.168.0.205. Suche da mal nach den Fehler! Sowas ist einfach unerklärlich den es war defenetiv kein weiteres Netzwerkgerät angeschlossen das eventuell vielleicht die 192.168.0.200 blockiert hätte.
Ach ja, ich war ca. 1,5 Jahre später beim Kunden den Switch auswechseln, wir haben spaßhalber den Drucker nochmal auf die 200 gestellt, im PC den Anschluss auch auf die IP 192.168.0.200 und was soll ich sagen, die IP ist immer noch nicht ansprechbar! Nochmal ein halbes Jahr später haben wir den alten HP Laserjet durch einen neuen ersetzt, auch dieser funktioniert nicht auf der 192.168.0.200! Wir haben uns darauf geeinigt das diese IP das Verfallsdatum erreicht hat!

Also sag, wo soll ich den Fehler suchen?
An der viertuelen Maschine, Linux und Squid kann es nicht gelegen haben, denn ich habe genau das gleiche mehrfach an einer genauen Kopie des Orginals durchgeführt. 3x hat es nicht funktioniert, dann funktiiniert es beim 4x! Gut ich habe vorher keinen Textlauf von Squid mit
Code:
squid -NCd1
gemacht. Also erstelle ich noch ein 5tes mal eine Kopie vom Original, mache genau die gleichen Schritte wie bei Versuch 1-3 und es funktioniert wieder. Natürlich notiere ich jeden Schritt fein säuberlich in ein Textdokument und kann genau nachvollziehen was ich wann gemacht habe. So habe ich bis jetzt hunderte Seiten Protokoll aus dem ich mir nun eine Art Dokumentation zusammen setzte. Dank PSR.exe bei bei Windows 7 ist das recht einfach. Das protokuliert jeden Mausklick und jede Tastatureingabe!

Gruß Gerald
 

spoensche

Moderator
Teammitglied
In der cache.log stehen die Fehler- und Debugausgaben vom Squid und wir fangen da mit der Fehleranalyse an. Poste bitte mal die cache.log. (Wenn sie sehr groß ist pastebin o.ä. verwenden)
 
OP
J

Jerry95

Newbie
spoensche schrieb:
In der cache.log stehen die Fehler- und Debugausgaben vom Squid und wir fangen da mit der Fehleranalyse an. Poste bitte mal die cache.log. (Wenn sie sehr groß ist pastebin o.ä. verwenden)
Ich habe es eigentlich schon mal geschrieben, aber im Cache.log war immer genau das gleiche gestanden, Zeile für Zeile, egal ob es funktioniert hat oder nicht. Natürlich bis auf die Zeitstembel. Ich habe da extra mal Zeile für Zeile verglichen. Jetzt kann ich es momentan nicht, da ja alles funktioniert und die jetzt funktionierende ja eine frische Kopie des Originals war und nie was mit der zu tun hatte die nicht funktionierte!
Ich habe einiges probiert um den Fehler zu reproduzieren, aber es gelang mir bis heute nicht!
 

spoensche

Moderator
Teammitglied
Interessant wäre mal was in der chache.log gestanden hat, weil der Inhalt für die Fehlersuche hilfreich ist, auch wenn für dich immer das gleiche drin steht.

Die Logfiles werden auch nicht direkt gelöscht, sondern per Logrotate als gzip gepackt und bis zu einem bestimmten Zeitpunkt aufbewahrt. Du könntest, falls interesse besteht, mal nachsehen, in welcher Datei Meldungen vorhanden sind, wo es nicht funktionierte und den Inhalt posten.
 
Oben