Seite 1 von 1
— Linux Allerlei —
Verfasst: 26.03.2009 19:29
von AND51
Hallo!
Hab entdeckt, dass ich ein Programm mit
nohup im Hintergrund laufen lassen und mich trotzdem beruhigt aus dem Terminal abmelden kann.
Das mache ich dann so:
Dazu hab ich 2 Fragen:
- Oft lese ich, dass man ein Ampersand'$' anhängt. Warum? Was bewirkt das?
- Die Ausgabe wird ja in die Datei 'nohup.out' bzw. '$HOME/nohup.out' umgeleitet. Lasse ich meinen Gameserver aber kontinuierlich laufen, häuft sich dessen Logausgabe in 'nohup.out' an. Ich brauche die Ausgabe sowieso nicht.
Wie kann ich die Ausgabe in eine Datei gänzlich abstellen?
Verfasst: 26.03.2009 19:53
von 125
Moin,
1. Du meinst bestimmt ein "&" das is dafür da den Prozess in den Hintergrund zu verschieben, ansonsten blockierst du dir damit die Konsole
2.
MfG
125
Verfasst: 26.03.2009 20:15
von DarkDragon
Ich nutze screen. Das ist irgendwie angenehmer für mich.
Verfasst: 27.03.2009 01:21
von AND51
Was ist denn /dev/null?
Ist das ein spezieller Ordner? Gibts davon noch mehr?
Und ist /dev/null sozusagen der Papierkorb, in den die Ausgabe direkt geschrieben wird oder wie habe ich mir das vorzustellen?
screen habe ich mir gerade mal kurz angesehen und ich finde das auf Anhieb grad etwas unhandlich/unübersichtlich.
Habe mich schon an nohup gewöhnt; und wenn ich einen der Prozesse beenden will, reicht top.
Noch was zu den Prioritäten von Prozessen: Ich möchte von einem in den Hintergrund geschickten Prozess die Priorität leicht erhöhen. Das mache ich nicht mit nice oder renice, sondern mit top r PID -1.
Ist das richtig?
Verfasst: 27.03.2009 08:36
von Macros
/dev/null ist ein virtuelles Gerät,
das alle Daten die es empfängt ins Nirwana schickt,
/dev/zero Gibt unendlich viel "null Blöcke" aus
Man kann es zum Beispiel mit dd verwenden, um eine Festplatte mit Nullern zu überschreiben.
/dev/random gibt dir Zufallszahlen, blockiert jedoch, sobald eine groß genuge Entropie nicht mehr gewährleistet wird.
/dev/urandom gibt dir unabhängig von der Entropie Zufallszahlen.
Ob der zweite Befehl richtig ist?
Wenn er so dokumentiert ist, dann ja.
Aber wie du schon schreibst, ist eigentlich renice dafür vorgesehen.
Verfasst: 27.03.2009 12:47
von AND51
Danke für die Infos.
Hab verstanden, was diese "virtuellen Gerätedateien" bezwecken.
So langsam versteh ich auch
diesen Witz hier.
Noch mal zur Priorität: Hab gelesen, diese gehen unter Linux von -20 (hoch) bis 20 (niedrig).
Das heißt also, mit -1 als Wert läuft der Prozess doch mit leicht höherer Geschwindigkeit?
Ich bin etwas verwirrt, denn der Taskmanager
top zeigt den PRI-Wert des Programms unverändert an (z. B. 25). Wenn ich mit
top den Prozess "renice", und den Wert -10 zuweise, dann ändert sich lediglich der NI-Wert auf -10 und dem PRI-Wert werden 10 abgezogen, also auf -15 gesetzt.
Wie hängen die PRI- und NI-Werte genau zusammen, warum schwankt der PRI-Wert ohne mein zutun manchmal um
+1 und welche Priorität würdet ihr einem "mittelschweren" Gameserver im Allgemeinen so zuweisen?
Verfasst: 27.03.2009 13:05
von DarkDragon
Also Linux nutzt ein dynamisches Prioritäten-Scheduling. Da wird die Priorität bei jeder Ressourcenzuteilung um 1 erniedrigt bis es bei -20 ist, dann wirds auf den nice wert zurückgesetzt meines Wissens. Wahrscheinlich aktualisiert sich die Anzeige so langsam, dass du nicht siehst wie die Priorität sich verändert (So schnell kann kein Mensch sehen und die Ausgabe dauert länger als einem lieb ist).
Verfasst: 27.03.2009 13:31
von AND51
Könnte auch daran liegen, dass
top standardmäßig nur alle 5 Sekunden die Anzeige aktualisiert.
Könnte man mit 'd' oder 's' anders einstellen.
Aber DarkDragon, wo du schon mal da bist:
Die PB-Installation, bei der du mir geholfen hast, auf meinem vServer (nochmals vielen Dank dafür!), streikt.
Dachte ich grad jedenfalls, dabei musste ich ja bei jedem Login die Umgebungsvariablen neu anpassen. Geht das übrigens automatisch, sodass ich das nicht jedes mal machen muss?
Übrigens hatte ich ja vor, meine Webseite komplett von CGI/Perl auf PureBasic umzustellen.
Dabei bin ich schon einen Schritt weiter. Und zwar kenne ich ja von Perl schon die Shebang-Zeile
Wie ich heute Nacht

herausgefunden habe, funktioniert das auch bei jeder anderen Datei!
Schreibe ich also in die 1. Zeile eines PB-Quellcodes
wird der Code automatisch kompiliert und ausgegeben!! GEIL!!!!
Der Haken: Die Shebang-Zeile verursacht für den Kompiler einen Syntaxerror. Stimmt ja auch, PureBasic kann mit dieser Zeile nichts anfangen. Wie kann ich das elegant umgehen? Any ideas?
Verfasst: 27.03.2009 13:40
von DarkDragon
Wie schon gesagt:
"vi ~/.profile" da kannst du alles was beim login deines users ausgeführt werden soll reinschreiben. Also z.B. die Exports.
Desweiteren willst du auf CGI umsteigen, nicht auf PureBasic. Du willst die CGI files nur während der Laufzeit generieren.
Und wegen der Zeile:
Mach doch einfach #!/purebasic/compilers/pbcompilercallerscript -q
Und programmier eine Anwendung bzw ein Skript (mit dem Namen pbcompilercallerscript wie oben), die den PB Code bekommt, die Zeile entfernt, kompilliert und ausführt, so wie ich es dir gesagt hab.
Verfasst: 27.03.2009 13:48
von AND51
> "vi ~/.profile" da kannst du alles was beim login deines users ausgeführt werden soll reinschreiben
Ah die Datei wars. Ich wusste, dass es so eine Datei geben muss, aber nicht mehr, wie sie heißt.
> Desweiteren willst du auf CGI umsteigen, nicht auf PureBasic
Hm... Verbirgt sich dahinter ein Denkfehler oder ein begriffliches Missverständnis meinerseits?
CGI bedeutet "Common Gateway Interface", steckt darin die Sache mit der Shebang-Zeile? Oder versteh ich das komplett falsch?
> programmier eine Anwendung bzw ein Skript, die den PB Code bekommt, die Zeile entfernt, kompilliert und ausführt
Hm, also doch den 'Umweg' über eine externe Anwendung. So schlimm ist das ja nun nicht, dann muss ich das halt so machen.
Dachte nur, jetzt wo ich die Shebang-Zeile (wieder)entdeckt habe, dass es noch einfach gehen könnte.
@ DarkDragon
Wenns dir nichts ausmacht, könntest du die Liste der benötigten Libraries nochmal posten? Damt ich sie habe, falls ich PB mal eigenmächtig neu installieren muss?
Vielleicht schreibe ich mal beizeiten ein kleines Tutorial, wie man PB unter Linux installiert und einsetzt. Mal sehen.