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.





























1 comment… read it below or (1 comment ... lees het hieronder of voeg een )
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