Draaiend proces op de achtergrond met nohup

on December 22, 2008 door Sukrit Dhandhania op 22 december 2008

Linux

Ik werk op externe servers veel. Ik gebruik SSH om verbinding te maken met mijn server. Vaak ik een proces dat ik moet laten lopen, zelfs nadat ik dichtbij mijn SSH-verbinding. Dit kan een shell script dat parseert via mijn log bestanden of zeer grote MySQL database restauratie. Dat is toen ik ingaan op een Linux command line utility genaamd "nohup". "Nohup" is de afkorting voor "geen ophangen", dat vertaalt naar "negeren het ophangen signaal". De "ophangen" signaal is wat er gebeurt als je uitlogt. Wat 'nohup "doet is dat u het kunt inloggen op uw server, start van een proces-en afmelden. Het proces blijft draaien, zelfs nadat u zich hebt aangemeld op. Wanneer u zich opnieuw aanmelden kunt u dit proces opnieuw, op voorwaarde dat zijn nog steeds actief.

De basis syntax van "nohup" is:

# Nohup [commando] &

Vervang "[opdracht]" met de naam van uw script, of een commando. De "&" aan het einde maakt het commando of script uitgevoerd als een achtergrond proces. Hier is een voorbeeld van hoe je zou gebruiken "nohup" om een back-up van een grote MySQL database op uw externe server. Ten eerste, ik inloggen op mijn server op afstand met behulp van SSH:

# SSH calvin@sevenacross.com

Daarna heb ik de opdracht "mysqldump-ucalvin-phobbes largedatabase> largedatabase.db" in het "nohup" modus door toevoeging van een "nohup" voor en "&" na het commando:

# Nohup mysqldump-ucalvin-phobbes largedatabase> largedatabase.db &
[1] 3999
# Nohup: voeg uitgang naar de "nohup.out '

Er zijn twee lijnen van de output die je krijgt. De "3999" in de eerste lijn is het proces-ID van het proces dat ik zojuist bracht, terwijl de "nohup: voeg uitgang naar de" nohup.out "" betekent dat de uit die dat zou komen meestal aan de terminal wordt doorgestuurd naar een bestand genaamd "nohup.out" in de directory waar je zette het commando. U kunt controleren of het proces loopt nog door te zoeken door middel van alle draaiende processen, met behulp van de proces-id:

# Ps-ef | grep 3999
calvin 3999 29848 0 18:42? 00:00:00 / usr / bin / mysqldump
calvin 6575 31852 0 18:44 pts / 2 00:00:00 grep 3999

Wanneer het proces wordt gedaan draait zie je een uitgang in de opdrachtregel zoals deze:

[1] + Gedaan nohup mysqldump-ucalvin-phobbes largedatabase> largedatabase.db

U kunt controleren of het bestand "nohup.out" om te controleren op eventuele fouten of andere berichten die zijn productie, terwijl het proces werd uitgevoerd. Als het bestand blijft leeg dat is oke. Betekent dit dat er geen berichten zijn, terwijl de output van het proces werd uitgevoerd.

Verwante Posten:
  • Hoe komt u gedetailleerde informatie over elk draaiend proces in Windows
  • Hoe gebruik dstat om toezicht te houden op uw Linux / UNIX-server
  • Hoe gebruik je een screensaver als uw bureaublad achtergrond in OS X
  • How to reset een verloren MySQL root wachtwoord
  • Hoe blurminal uw OS X Terminal
  • Get Simple Help tutorials net zoals deze in uw e-mail inbox elke dag - gratis! Geef uw email adres in:

    U kunt altijd afmelden voor deze e-mail abonnement op elk gewenst moment.


    Bookmark en Share

    1 comment… read it below or (1 comment ... lees het hieronder of voeg een )

    1 Bobby Cox 12.22.08 op 8:44

    Hallo - nohup is nuttig, maar als u het scherm kunt u losmaken en weer naar een terminal op zal zijn en commando's op de achtergrond ook.

    http://www.gnu.org/software/screen/

    --
    Bobby

    Verlaat een Commentaar

    U kunt deze HTML-tags en attributen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>