Linux nohup ve disown nedir?

nohup, "kapatmak yok" anlamına gelen bir POSIX komutudur. Amacı, HUP sinyalini yok sayacak ve bu nedenle kullanıcı oturumu kapattığında durmayacak şekilde bir komut yürütmektir. Normalde terminale gidecek olan çıktı, daha önce yeniden yönlendirilmemişse nohup.out adlı bir dosyaya gider.

disown, Unix ksh, bash ve zsh kabuklarının bir parçasıdır ve işleri mevcut kabuktan kaldırmak için kullanılır.

Eğer terminal ekranından bir uygulama çalıştırırsanız, process ön planda başlayıp terminale bağlı olarak çalışacaktır. Bu durumda, terminal ekranına komut yazılamaz hale gelir. Ancak süreçleri arka planda çalıştırabilirsekte,  yine de süreçler terminalin ppid’sine bağlı olduğu için terminali kapatınca programlar kapanacaktır. Bunu  iki yöntem ile aşabiliriz. 

Bu kılavuzu okumadan önce, bg&fg ve jobs komutlarını araştırmanız önerilir.

disown kullanımı 

Eğer bir uygulamanın ilk çalıştığında, arka planda başlamasını istiyorsanız  & sembolunü uygulamanın yanına koymanız yeterlidir. Komut satırında bir uygulama çalıştıralım.

firefox& 

Uygulama arka planda başladığı için, terminal ve firefox uygulamasını kullanabiliyorum. Ancak process terminale bağlı olduğu için, terminal kapandığı zaman firefox uygulamasıda kapanacaktır.

ps (process status) =  O anda çalışan işlemleri ve bunların PID'lerini listelemek için kullanılır 

pidof = Bir uygulamaya ait olan tüm PID leri gösterir.

Arka planda çalışan process'leri jobs komutu kullanarak görebilirsiniz. disown komutunu kullanarak, process'i mevcut kabuktan kaldırıyorum. Artık terminali kapatsak bile uygulama kendi bir pid sahip olur ve kapatmadığımız sürece çalışmaya devam eder.

nohup kullanımı

Normal şartlarda terminal ekranında bir process çalıştırdığımız zaman, process terminale bağlanır. Bu durumda terminali kapattığınız zaman her şey son bulur. Ancak terminale bağlı olmadan ve kendine özgü bir pid sahip olması için nohup komutunu kullanabiliriz. Bu sayede çalışan süreç terminale bağlanmaz.

nohup firefox 

Terminali kapatsak bile uygulamamız kapanmaz, ancak terminal kullanılamaz hale gelir. Bunu aşmak içinde yine  & sembolunü uygulamanın yanına koymanız yeterlidir.

nohup firefox& 
Blog'a Dön