Apa perbedaan antara SIGSTOP dan SIGTSTP?


Jawaban:


153

Kedua sinyal tersebut dirancang untuk menghentikan proses yang pada akhirnya akan dilanjutkan SIGCONT. Perbedaan utama di antara mereka adalah:

  • SIGSTOPadalah sinyal yang dikirim pemrograman (misalnya: kill -STOP pid) sementara SIGTSTP(untuk sig nal - t erminal berhenti ) juga dapat dikirim melalui ttysopir oleh pengguna mengetik pada keyboard, biasanya Control- Z.

  • SIGSTOPtidak bisa diabaikan. SIGTSTPmungkin.


10
Faktoid: Jika Anda seorang programmer linux, SIGTSTP adalah apa yang Anda dapatkan saat Anda menggunakan Ctrl-Z untuk menghentikan proses yang berjalan di shell tanpa mematikannya. Ini biasanya menyebabkan shell untuk meletakkannya di daftar pekerjaan yang ditangguhkan.
simpleuser

@Archer Saya tidak yakin untuk memahami komentar Anda. Apakah maksud Anda Anda yakin Control-Ztidak memicu SIGTSTPatau menurut Anda seharusnya tidak?
jlliagre

@jlliagre Saya melakukan survei lebih dekat, dan ternyata Anda benar. Saya menghapus komentar sebelumnya.
Pemanah

@Archer Ok, tebakan saya adalah Anda bingung dengan terminologi halaman manual. terminal stopberarti TSTP.
jlliagre

@jlliagre Saya ingin, tetapi sistem tidak mengizinkannya, ia mengatakan saya hanya dapat membatalkan downvote jika jawabannya diedit…
Archer

39

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

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

6
Pada Solaris 10, sinyal didefinisikan dalam file header/usr/include/sys/iso/signal_iso.h
Kent Pawar

2
Di FreeBSD 11 ada di/usr/include/sys/signal.h
Greg Schmit

1

SIGSTOP tidak dapat diabaikan oleh proses yang ditargetkan.

Contoh bagusnya adalah pemutar video mpv, dapat diabaikan SIGTSTPtetapi tidak SIGSTOP.

Anda dapat menguji dengan video yang sedang berjalan:

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

Tentu saja kill -SIGCONT $(pidof mpv)untuk melanjutkan bermain.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.