Reddetme sürecini nasıl geri alabilirim?


12

Önceki birçok soruya benzer şekilde, kendimi ekranda koşmamı dilediğim bir işte buldum. İşlemden vazgeçmeye zorlandım çünkü bağlantıyı kesmem gerekiyordu. Şimdi yeniden bağlandığım için sürecin hala devam ettiğini görüyorum. Çıktısını görebilmem ve girdi verebilmem için süreci nasıl "geri alabilirim"?

Bu soru, çalışan bir süreci ekrana taşımaktan farklıdır, çünkü kayıp stdin / out / err tutamaçlarını yeniden açmayı içerir.


Yanıtlar:


6

Bu yinelenen bir soru - bkz. Halihazırda çalışmakta olan bir süreci Ekrana taşıma , retty'ye işaret eden, her zaman tahmin ettiğim şeyi uygulayan kendinden tarif edilen korkunç bir hack olabilir, ancak gerçekten denenmiş olabilir: fd 0, 1'i bulur ve 2 (sırasıyla standart giriş, çıkış ve hata) ve bunlara yapışır, olmaması gereken korkunç bir anormal parazit gibi.


Bu programı bilmiyordum - gerçeği söylemekle birlikte, onu kullanmak iyi bir uygulama değil! İyi cevap, ne olursa olsun.
Andrew M.

6

Süreci reddederek, terminal tarafından yayınlanan SIGHUP'ları göz ardı etmesini istediğinizi etkili bir şekilde söylüyorsunuz. Oturumunuzu kapattığınızda (örneğin bash), bu işlem init'e ait olacaktır. Dolayısıyla, sahiplikten vazgeçtikten sonra bir sürece yeniden sahip olmak istediğinizi söylediğinizde, sahiplenmeyi başka bir işlemden - uygulanmayan ve iyi bir nedenle - almak istediğinizi söylüyorsunuz. Bu sadece Linux'ta zarifçe yapmak mümkün değildir.


1
Süreçlerin buna benzer başka süreçleri yoktur. Sizin gibi itibarsız bir süreç hala devam ediyor.
mattdm

Ebeveyn oturumu kapatıldıktan sonra yaparlar - sorusunda belirtildiği gibi. Cevabımı bunu yansıtacak şekilde güncelledim.
Andrew M.

Üst süreç başlatılacak şekilde değişir, ancak bu sahiplikten farklıdır. Sürecin EUID ve UID'si orijinal kullanıcınınki olarak kalır. Aksi takdirde, bu potansiyel olarak sömürülebilir, çünkü her kullanıcının aniden başka bir kullanıcı olarak kod çalıştırmanın bir yolu ve bir sistem kullanıcısı daha az olmaz.
mattdm

1
EUID / UID! = PPID. İzinlerden değil süreç sahipliğinden bahsediyorum.
Andrew M.

Evet, "süreç sahipliği" teriminin anlamı dışında her şeyi kabul ettiğimizi düşünüyorum. Bu, üst işlemine değil, işlemin ilişkilendirildiği kullanıcı kimliğine karşılık gelir. Belki de karışıklık, disownisme rağmen aslında süreç sahipliğini değiştirmekle ilgisi olmayan bash'a özgü komuttan kaynaklanmaktadır .
mattdm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.