Arkaplanda Servis Çalıştırma İşlemi – Nohup Kullanımı [Linux]
Bildiğim kadarıyla bir screen ve nohup var ve araştırdığımda screen bana biraz daha zor gelmişti. O nedenle nohup komutunu anlatacağım. Screen komutununda nohup komutunun ikisininde unix sistemlerde çalışabildiğini söylemekte fayda var. Bunlar nedir dersek eğer çalıştırmak istediğimiz yazılım veya scriptleri nohup ile bir process id atayarak bir task açmış olacağız yani bir arkaplan servislerine bir programcık ekleyerek kendi sistemimizi çalıştırmaya yarayacaktır.
Nohup Kullanımı
Bu işlem çok basit aslında. nohup boşluk command yazılması yeterli. Aslında nohup yazmayıp komut-adi & şeklinde komut satırına yazarak arkaplanda çalıştırabilirsiniz.
komut-adi &
Ancak böyle child process oluşturuyor ve kendisini kill etme ihtimali olabiliyor ana processe bağlandığı için dolayısıyla nohup ile birlikte kullanıldığında bir process id atanıyor ve siz öldürmezseniz çalışmaya devam ediyor yada sistem kapanmazsa. Sistemin kapanma durumunda tekrar çalışması için ise systemd kullanabilirsiniz.
nohup komut-adi &
Bu şekilde arkaplanda shell scriptinizi, ruby scriptinizi veya javada hazırladığınız jar dosyanızı çalıştırabilirsiniz.
nohup ruby /home/deneme.rb &
Peki bunu nasıl durduracağız sorusu gelecektir akıllara. O işlemde kolay;
echo &!
Yaptığınızda sizin yapmış olduğunuz background işleminin pid’sini verecektir. Bunu da;
kill -9 pid
pid yerine echo &! gelen değeri yazarsanız o işlemi öldürebilirsiniz.
Ayrıca
nohup program &> program.out &
log olarak da yazdırabilirsiniz