Налице са много команди на Linux системи. Има някои, които ще използвате няколко пъти на ден, а други са обикновено резервирани за специални случаи на употреба. Nohup е една такава команда. Няма да го използвате всеки ден, но ще бъдете благодарни, че е наоколо, когато имате нужда от него.

Какво е Nohup?

Nohup е кратък за "Няма Hangups". Това не е команда, която тичате само по себе си. Nohup е допълнителна команда, която казва на системата Linux да не спира друга команда, след като е стартирала. Това означава, че ще продължи да се изпълнява, докато не бъде направено, дори ако потребителят, който го е стартирал, ще се регистрира. Синтаксисът за nohup е прост и изглежда така:

 nohup sh your-script.sh & 

Забележете "&" в края на командата. Това премества командата във фонов режим, освобождавайки терминала, в който работите.

Nohup работи с почти всяка команда, която използвате в терминала. Тя може да се изпълнява с персонализирани скриптове, както и стандартни системни команди и помощни програми за командния ред.

Nohup.out

Тъй като nohup може да продължи да работи независимо от потребителя, който го е стартирал, командата трябва някъде да изведе всички съобщения или грешки. Тъй като няма терминал, който да се свързва с него, nohup регистрира всичко в изходен файл, nohup.out.

По подразбиране този файл се намира в директорията, в която сте стартирали командата. Nohup.out е донякъде уникален, защото съдържа както стандартния, така и изходен сигнал за грешка заедно. Nohup пренасочва както към един и същ файл по подразбиране.

Не е задължително да използвате nohup.out. Това е само по подразбиране. Можете да зададете персонализиран изход, когато стартирате nohup и го поставите на персонализирано местоположение.

 nohup sh your-script.sh> /path/to/custom.out & 

Персонализираният изход съдържа точно същите данни като стандартния файл nohup.out.

Разлики с демони

По този въпрос, вие вероятно се чудите какво не задава без демонстриран процес. В края на краищата, те двамата изглежда служат сравнително една и съща цел, но наистина не. Демоните тичат непрекъснато във фонов режим. Те са най-добре запазени за процеси, които не искате да излизате, като сървъри. Те изискват още работа за програмиране, така че те не са най-подходящи за прости еднократни скриптове.

Nohup е за еднократна употреба. Помислете за скрипт, който ще отнеме много време, за да тича, но в крайна сметка ще завърши. Може би има дълга и сложна задача, която тичате от време на време, и това отнема часове, за да завършите. Не искате да оставите терминал отворен или потребител, влезли в профила си, така че да използвате nohup, за да го поддържате във фонов режим. Като допълнителен бонус, той автоматично ще запише всичко за вас.

Можете да видите, че nohup не е ежедневен инструмент, но може да бъде много полезен за правилната задача. Попада някъде между нормален кратък скрипт и непрекъснато изпълняващ се демон. Тя ви помага да се възползвате от по-дълбокия подход към по-дългите скриптове, които може би сте губили редовно времето за гледане на деца.