Как запомнить и легко переключаться между конфигурациями мониторов в KDE?

Ну... стиль программирования у всех разный, я полагаю. Лично я стараюсь избегать отправки kill -9, если могу, потому что это имеет тенденцию создавать зомби-процессы, поскольку не позволяет процессу, который он убивает, выполнять любые действия по очистке, которые может существовать или не существовать в программе, которую пользователь хочет убить.

Это сигнал «последнего средства», поэтому, хотя это редко предпочтительный способ завершения программы, он широко используется, (особенно в плохо написанных программах, )потому что он «всегда работает", так сказать...

Если процесс игнорирует SIGINTили SIGTERM, тогда должно быть причиной этого --возможно, процесс должен освободить файл блокировки, удалить какой-то временный файл (] s )и/или выполнить некоторые другие действия по «очистке» перед завершением. Конечно, программы ведут себя неправильно, и поэтому нам нужно SIGKILLдля этих (надеюсь, редких )сценариев.

Единственным действительно подходящим использованием SIGKILLявляется случай, когда процесс по какой-то причине ведет себя неправильно и, следовательно, не будет должным образом завершен, или когда пользователю необходимо немедленно завершить процесс по какой-либо другой причине (, например, если вы случайно запустить трояна и чем сходить с ума, вы можете убедиться, что вы быстро и полностью уничтожите программу ).

Причина, по которой вы можете видеть его часто, заключается в том, что это единственный сигнал, который ядро ​​не может игнорировать. В оболочке вы можете поэкспериментировать с командой trap, чтобы убедиться в этом, но это очень хорошее объяснение того, что делает kill -9:

Signal 9 From Outer Space

There is one signal that you cannot trap: SIGKILL or signal 9. The kernel immediately terminates any process sent this signal and no signal handling is performed. Since it will always terminate a program that is stuck, hung, or otherwise screwed up, it is tempting to think that it's the easy way out when you have to get something to stop and go away. Often you will see references to the following command which sends the SIGKILL signal: kill -9

However, despite its apparent ease, you must remember that when you send this signal, no processing is done by the application. Often this is OK, but with many programs it's not. In particular, many complex programs (and some not-so-complex) create lock files to prevent multiple copies of the program from running at the same time. When a program that uses a lock file is sent a SIGKILL, it doesn't get the chance to remove the lock file when it terminates. The presence of the lock file will prevent the program from restarting until the lock file is manually removed.

Be warned. Use SIGKILL as a last resort.

Источник

3
04.02.2017, 14:28
0 ответов

Теги

Похожие вопросы