В странице справочника удара говорится:
! ~ logical and bitwise negation
Числа со знаком обычно хранятся в дополнительном представлении Two:
...
-4 = 1100
-3 = 1101
-2 = 1110
-1 = 1111
0 = 0000
1 = 0001
2 = 0010
3 = 0011
...
Это означает, берете ли Вы число как 2, оно поразрядно интерпретируется как 0010. После поразрядного отрицания это становится 1101, который является представлением-3.
Вы можете использовать kill -9 11394
, чтобы убить процесс полностью бесследно, это вызовет следующее:
Из 3 самых важных сигналов "kill" в командной строке Linux/UNIX:
Ядро отпустит процесс, не сообщая о нем процессу. Такое нечистое убийство может привести к потере данных. Это самый "трудный", "грубейший" и самый опасный из доступных сигналов kill, и его следует использовать только для того, чтобы остановить что-то, что кажется неостановимым.
Попробуйте использовать флаг сигнала для изящно убить процесс:
Убить -15 11394
Есть различные сигналы, которые вы можете попробовать, которые, я уверен, кто-то другой перечислит, но наиболее эффективным я считаю сигнал HUP
:
kill -hup 11394
Я нахожу, что это работает во многих случаях, когда приложение не реагирует на другие сигналы. В противном случае можно просто убить -9
, хотя это может иметь побочные эффекты, т.к. он просто выдергивает вилку и не позволяет приложению очиститься.
В случае с приложением X мне повезло с использованием xkill и щелчком по его окну, когда приложение не отвечало на убийство из командной строки
. По мере того, как процесс остановлен * (обратите внимание на T
как состояние состояния в верхней части
), он не может сделать какую-либо обработку сигнала вообще. Итак, вам нужно использовать сигнал, который не требует взаимодействия процесса, в вашем случае SIGKILL
(9), как в следующем
kill -9 11394
, если вы хотите, по какой-то причине, получите основной дамп процесса (И ваша система настроен для этого), вы можете использовать SIGSEGV
(11). Это также не требует никакого взаимодействия процесса.
* Я предполагаю, что здесь остановился, потому что прослеженный процесс должен иметь возможность обрабатывать сигналы, что может привести к остановке процесса.