El Barto 0 Zgłoś post Napisano Marzec 19, 2017 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 Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Marzec 19, 2017 (edytowany) 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). Edytowano Marzec 19, 2017 przez Archi (zobacz historię edycji) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
El Barto 0 Zgłoś post Napisano Marzec 19, 2017 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. Udostępnij ten post Link to postu Udostępnij na innych stronach