wget pid(s) speichern

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
michaa7
Beiträge: 5025
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

wget pid(s) speichern

Beitrag von michaa7 » 03.02.2014 21:52:42

Ich verwende häufig wget für parallele downloads. Dazu schicke ich wget mit der "-b" option in den hintergrund. Die betreffende pid *dieser* wget instanz wird dabei im VT von dem diese gestartet wurde ausgegeben. Schließe ich das VT oder scrollen weitere aktivitätetn weit genug geht diese info verloren. Will ich aus welchem grund auch immer eine der parallel laufenden wget-instanzen killen fehlt mir die betreffende pid. Und dies mit top über unterschiedliche startzeitpunkte festzustellen ist nicht sehr verläßlich (vielmehr meine erinnerung dazu). Das wget-log gibt zwar zu allem möglichen auskunft, jedoch nicht zur pid.

Gibt es eine möglichkeit wget dazu zu veranlassen, die pid nicht nur nach stdout (VT) sondern auch in eine datei zu loggen, wobei ich dann jedoch auch den dateinamen des downloads dort miterwähnt haben müßte weil ich sonst wieder keine korrelation zwischen pid und download hätte. Natürlich wäre es am schönsten die pid würde einfach ins log geschrieben, aber dazu gibt es keine option.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: wget pid(s) speichern

Beitrag von Cae » 04.02.2014 01:50:30

Mach's mit manuellem -o und verwende anstatt -b die entsprechende Funktion der Shell, also einfach per & in den Hintergrund haengen:

Code: Alles auswählen

$ sleep 9999 &
[1] 22063
$ sleep 999 &
[2] 22091
$ jobs
[1]-  Running                 sleep 9999 &
[2]+  Running                 sleep 999 &
$ kill %1
$ 
[1]-  Terminated              sleep 9999
$ jobs
[2]+  Running                 sleep 999 &
$ 
Das hat auch den Vorteil, dass du die einzelnen Prozesse schnell per %JOBID ansprechen kannst (die JOBID ist das in den eckingen Klammern im job-Output). Falls das Terminal geschlossen werden koennen muss, empfiehlt sich Debianscreen oder Debiantmux als Terminalmultiplexer.

Natuerlich koennte man auch das stdout/stderr von wget abgreifen, aber das ist unzuverlaessig und nicht so gedacht.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

uname
Beiträge: 12474
Registriert: 03.06.2008 09:33:02

Re: wget pid(s) speichern

Beitrag von uname » 04.02.2014 07:49:11

Persönlich nutze ich auch nur Debianscreen. Bei Beenden von Sitzungen kannst du dir aber auch noch "nohup" anschauen und zudem kann man natürlich auch laufende Prozesse z.B. mit "pstree", ps, Debianlsof usw. wiederfinden. Seitdem ich vor Jahren jedoch Debianscreen für mich entdeckt habe, habe ich all diese Ansätze incl. "&" nicht mehr im Terminal genutzt.

michaa7
Beiträge: 5025
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: wget pid(s) speichern

Beitrag von michaa7 » 04.02.2014 14:35:13

ok, danke euch beiden. Das hilft schonmal.

Ein mit "&" job wird also nicht vom VT abgekoppelt (wie "wget -b" das täte)? Das VT offen zu lassen ist zwar kein problem, aber es offen lassen zu *müssen* ist etwas unpraktisch.
Kann man selektiv je nach situation sich selbst ein VT sperren, ala ich gebe das sperrkommando ein und falls ich es dennoch versehentlich zu schließen versuche kommt erst ein hinweis, sowas wie mollyguard (was dies beim shutdown über eine ssh sitzung tut).

Sonst muß ich mir tatsächlich screen odet tmux anschauen.

@uname
Das finden von wget-prozessen mit pstree, ps, lsof oder htop wäre ja nicht das problem. Aber die zuordnung zu einem bestimmten download den ich canceln will vielleicht schon. Zumindest mit (h)top finde ich nur den reinen prozess ohne zuordnung zu einem d/l. Falls pstree, ps, lsof in dieser hinsicht gesprächiger wären würde das mein problem jedoch am besten lösen (weil es eben selten genug vorkommt so dass ich wegen dieses seltenen falls ein standardmäßiges gefummle mit nicht schließbarem VT oder screen etc gerne vermeiden würde).
Ich werde mir die entsprechenden manpages mal anschauen, aber wenn du weißt wie man prozesse inkl zuordnung zu einem d/l auch nach schließen des VT mit pstree, ps, lsof (oder sonstwas) wiederfindet dann wäre ich für eine mitteilung dankbar.

Was ich im grunde wissen will: Welcher prozess mit welcher pid (weil des den prozess ja mehrfach gibt) ist für das file </pfad/zu/hereinkommendem/fileNRx.ext> verantworlich?
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Antworten