SIGSTOP ve SIGTSTP arasındaki fark nedir?


Yanıtlar:


154

Her iki sinyal de sonunda ile devam edecek olan bir süreci askıya almak için tasarlanmıştır SIGCONT. Aralarındaki temel farklar:

  • SIGSTOPbir sinyal programlı gönderilir (örneğin: kill -STOP pid) ise SIGTSTP(için sig nal - t erminal durdurma ) aracılığıyla da gönderilebilir ttybir klavye, bir kullanıcı yazarak sürücü, genellikle Control- Z.

  • SIGSTOPYoksayılamaz. SIGTSTPolabilir.


10
Factoid: Eğer bir linux programcısıysanız, SIGTSTP, bir kabukta çalışan bir işlemi öldürmeden kesmek için Ctrl-Z'yi kullandığınızda elde ettiğiniz şeydir. Bu genellikle kabuğun onu askıya alınmış bir iş listesine koymasına neden olur.
simpleuser

@Archer Yorumunuzu anladığımdan emin değilim. Control-ZTetiklemediğine mi inanıyorsun yoksa olmaması SIGTSTPgerektiğini mi düşünüyorsun?
jlliagre

@jlliagre Daha yakından bir anket yaptım ve haklı olduğun ortaya çıktı. Önceki yorumu sildim.
Okçu

@Archer Tamam, sanırım kılavuz sayfa terminolojisi kafanız karıştı. terminal stopTSTP anlamına gelir.
jlliagre

@jlliagre istiyorum, ancak sistem buna izin vermiyor, sadece cevap düzenlenirse olumsuz oyu iptal edebileceğimi söylüyor…
Archer

40

/usr/include/x86_64-linux-gnu/bits/signum.h

#define SIGSTOP     19  /* Stop, unblockable (POSIX).  */
#define SIGTSTP     20  /* Keyboard stop (POSIX).  */

6
Solaris 10'da sinyaller başlık dosyasında tanımlanır/usr/include/sys/iso/signal_iso.h
Kent Pawar

2
FreeBSD 11'de şu an/usr/include/sys/signal.h
Greg Schmit

1

SIGSTOP hedeflenen süreç tarafından göz ardı edilemez.

Bunun güzel bir örneği video oynatıcıdır mpv, görmezden gelebilir SIGTSTPama yapamaz SIGSTOP.

Aşağıdakileri çalıştıran bir video ile test edebilirsiniz:

kill -SIGTSTP $(pidof mpv) ve kill -SIGSTOP $(pidof mpv)

Elbette kill -SIGCONT $(pidof mpv)oynamaya devam etmek için.

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.