Bir arka plan süreciyle ilgili sorunları olan bir meslektaşına aralıklı olarak ölüyordum.
Sunucuda oturum açıp çalıştırarak arka plan işlemine başladıklarını öğrendim:
su - <user> -c '<command>' &
"Aha", diye bağırdım. "&" İle bir komut başlatırsanız, kontrol terminalinden çıktığınızda telefonu kapatır. Bunu başarmak için nohup gibi bir şey kullanmanız gerekir.
Demek istediğimi göstermek için yukarıdaki komutu test ettik ve ... işe yaramış gibi görünüyordu: yukarıdaki komutu çalıştıran terminalden çıktığımızda komutla başlatılan işlem çıkmadı.
command , çıkışı bir dosyaya giden özel bir Python betiğidir. Anlayabildiğim kadarıyla, senaryoda akıllı bir "daemonize" gibi bir yetenek yoktur. Wikipedia: Daemon (hesaplama): Oluşturma sayfasında listelenen bir daemon olarak çalışması için gereken şeylerden hiçbirini yapmaz .
Komutu bu şekilde çalıştırmak beklendiği gibi davranır:
<command> &
exit
Yukarıdaki durumda , terminalden çıktığımızda komut tarafından başlatılan arka plan işlemi çıkar.
Sorum şu:
"Su - -c &" eklediğimizde, terminalimiz çıktığında işlemin çıkmasını önler. Kontrol terminali, standart giriş ve çıkış vb. İle ilgili detaylı olarak anlamak istiyorum.
Bu komutu arka plan işlemi olarak çalıştırma hedefine ulaşmak için makul bir yol mu? Değilse neden, değil mi?
Şirketimdeki en iyi uygulamaları yaymak istiyorum, ancak yaptığım önerileri gösterebilmem ve yedekleyebilmem gerekiyor.
Ayrıca neler olup bittiğini tam olarak anlamak istiyorum.
chroot --userspec root:root / sh -c "exec some_forever_process" &
. İş aynı kullanıcı olarak çalışıyor, dahanohup
önce veyadisown
daha sonra açıkça belirtilmemiş . Peki bu durumda, termin çıkışında sinyal nasıl iletilemez?