Skocz do zawartości


 

Zdjęcie

Różnica pomiędzy SIGTERM a SIGINT?

Różnica pomiędzy SIGTERM a SIGINT? sygnały kill sigkill sigterm

  • Proszę się zalogować aby odpowiedzieć
2 odpowiedzi na ten temat

Różnica pomiędzy SIGTERM a SIGINT?

#1 El Barto

El Barto

    Nowy użytkownik

  • Nowy
  • 2 postów

Napisany 19 marzec 2017 - 16:35

Witam, od niedawna zastanawiam się nad różnicą pomiędzy użyciem sygnałów SIGINT a SIGTERM. Wiem że pierwszy z nich jest często używany w sytuacji kiedy proces uruchomiony jest na pierwszym planie (fg). Wyczytałem również w sieci, że oba sygnały mogą być zignorowane przez program w pewnych sytuacjach. Niestety nie mogłem nigdzie odszukać informacji na temat tego czy SIGINT wykonuje tzw. bezpiecznie zamknięcie procesu (jak w przypadku SIGTERM)? 

 

Z góry dziękuję za wszystkie odpowiedzi. Pozdrawiam

 

 


  • 0

#2 Pan Kot

Pan Kot

    Mrrr

  • Zbanowani
  • PipPipPipPipPipPipPipPip
  • 2819 postów

Napisany 19 marzec 2017 - 16:56

SIGINT to interrupt, SIGTERM to termination. Żaden z nich nie gwarantuje, że w ogóle aplikacja się zakończy, bo to w gestii procesu leży obsługa tych sygnałów i reakcja na nie - sygnał, który kończy proces to SIGKILL, SIGTERM jedynie prosi proces o zakończenie się (i bezpieczne zamknięcie właśnie).

 

Różnicy między tymi dwoma dużej nie ma, ale SIGINT to sygnał, który jest wysyłany w momencie CTRL+C na aplikacji w foregroundzie właśnie, a SIGTERM jest niejako "zewnętrzny". Wszystkie aplikacje powinny obsługiwać te sygnały w taki sam sposób, bo obydwa proszą aplikację o zamknięcie, ale przyjęło się, że wysyła się SIGTERM'a, a SIGINT jest właśnie na potrzeby CTRL+C (dlatego, że ten sygnał może być wysłany ze standardowego wejścia właśnie).


Edytowany przez Archi, 19 marzec 2017 - 16:58.

  • 1

#3 El Barto

El Barto

    Nowy użytkownik

  • Nowy
  • 2 postów

Napisany 19 marzec 2017 - 17:22

SIGINT to interrupt, SIGTERM to termination. Żaden z nich nie gwarantuje, że w ogóle aplikacja się zakończy, bo to w gestii procesu leży obsługa tych sygnałów i reakcja na nie - sygnał, który kończy proces to SIGKILL, SIGTERM jedynie prosi proces o zakończenie się (i bezpieczne zamknięcie właśnie).

 

Różnicy między tymi dwoma dużej nie ma, ale SIGINT to sygnał, który jest wysyłany w momencie CTRL+C na aplikacji w foregroundzie właśnie, a SIGTERM jest niejako "zewnętrzny". Wszystkie aplikacje powinny obsługiwać te sygnały w taki sam sposób, bo obydwa proszą aplikację o zamknięcie, ale przyjęło się, że wysyła się SIGTERM'a, a SIGINT jest właśnie na potrzeby CTRL+C (dlatego, że ten sygnał może być wysłany ze standardowego wejścia właśnie).

 

Coś podobnego podpowiadała mi intuicja, wielkie dzięki za wyjaśnienie tego zagadnienia.


  • 0





0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników