Harry: het vervolg (2)
May 5th, 2008
Het kan niet altijd meevallen, natuurlijk.
Na de successstory van vanmorgen ben ik daarstraks serieus beginnen vloeken.
Zoals gezegd, werk ik dus met ssh op harry. Zo rond een uur of 5 besloot ik om wat veranderingen te doen in de fameuze database van ettelijke gigabytes. Eerst wat testen op een lege database met hetzelfde schema: na enkele seconden was de klus geklaard.
Vol goede moed dan hetzelfde beginnen doen op de eigenlijke database. Groot was mijn verbazing toen dat geen seconden, geen minuten, maar uren duurde! Maar geen nood, dacht ik, dat ding draait hier op een server, dus ik kan gerust mijn laptop toe doen en naar huis gaan. Dan is ie morgen klaar.
Maar wacht eens—als ik een terminal venster sluit, sluit dan het programma niet mee? Ah ja. Dat gaat dus niet. Uit een ver verleden herinnerde ik me nog wel het commando ‘nohup’, dat dit wel mogelijk maakt, maar dat moet je dus uitvoeren bij de start.
Na wat googlen kwam ik nog terecht bij een commando ‘screen’, maar dit heeft in feite hetzelfde probleem: je moet vantevoren weten dat het commando dat je wil uitvoeren, lang gaat duren.
Resultaat: ik heb uiteindelijk het commando afgebroken. Resultaat 2: heel de db was om zeep. Met een diepe zucht heb ik heel de db dan maar gedeleet, en opnieuw beginnen laden. Met ‘nohup’ deze keer, jawel.
Maar als jij een oplossing hebt voor het ‘oeps, dat duurt veel langer dan ik dacht en eigenlijk wil ik hier toch niet de hele nacht zitten wachten op nulletjes en eentjes die heen en weer gaan’-probleem, zou ik dat zeer graag van je horen.
9 Responses to “Harry: het vervolg (2)”
Sorry, comments are closed for this article.

May 6th, 2008 at 12:21 AM screen is een machtig tooltje, screenie is een (nog) simpelere frontend voor screen. Ik start altijd een screen sessie als ik ssh, een netwerkonderbreking kan u anders veel werk en tijd kosten. Je kan de screen sessie ook automatisch laten openen door het command in de .bashrc te foefelen, of nog beter, checken of er een screen openstaat, zoja, attachen, zoneen, opstarten. Eens je screen gewend bent kan je niet meer zonder in elk geval.
May 6th, 2008 at 12:36 AM Als het process echt superbelangrijk is bestaat er een manier. Het is een moeilijk, intensief karwei, maar het is mogelijk ;-) Hoe vind je op http://etbe.coker.com.au/2008/02/27/redirecting-output-from-a-running-process/
May 6th, 2008 at 01:03 AM Ik zou toch ook gaan voor de eerste suggestie: zet in .bashrc dat hij telkens een screen moet starten als je inlogt, dan zit je altijd onder screen te werken ...
May 6th, 2008 at 01:29 AM Het idee om standaard screen te starten bij het inloggen, lijkt me wel wat. Ik heb wel al gemerkt dat leuke features zoals tab completion en de backspace toets niet werken onder (mijn installatie van) screen. Daar moet ik dan toch eerst iets op vinden.
May 6th, 2008 at 07:58 AM screen is essentieel! Ik laat mijn window manager mijn terminals altijd met een screen starten (urxvtc -e screen), zo ben ik er zeker van dat er altijd een screen is. De copy/paste voodoo van screen zit zo in mijn vingers dat ik moeilijk zonder screen functioneer. Om goed te werken moet je termcap wel fatsoenlijk opgezet zijn. Veel Linux distributies vinden het niet nodig om dat voor jou te doen. Veel Linux distributies vinden het ten andere wel nodig om een system-wide screenrc te installeren die grondig verneukt is. Backspace aan de praat krijgen is doorgaans geen probleem: daar heb je je shell voor. Ik kan me niet inbeelden waarom tab-completion niet zou werken? Als ik me niet vergis staat mijn .screenrc ergens op http://www.paeps.cx/~philip/dotfiles/. If not - stuur even een mailtje, dan stuur ik hem door.
May 6th, 2008 at 09:29 AM "man bash" around line 2015 describes the disown builtin command; disown -h a running process to make it immune to HUP.
May 6th, 2008 at 11:21 AM @pvandewyngaerde Heb je dat zelf al geprobeerd? Disown ben ik ook tegengekomen in mijn google tochten, maar het was me niet helemaal duidelijk of dat helemaal koosjer was.
May 6th, 2008 at 06:39 PM Werkt ctrl-z gevolgd door bg om het proces in de achtergrond te zetten niet?
May 6th, 2008 at 06:52 PM Ctrl+Z ==suspend jobs ==als je het nu in een lijst wil zien staan Disown -h ==loskoppelen bg ==laat proces verder doen in background close shell probeer het. en blog about it als je het later toch will killen: kill -1 pid