Это не поддерживается out-of-the-box ни на каком Unix, который я знаю, но можно сделать в значительной степени что-либо с FUSE. Существует по крайней мере одна реализация nullfs ¹, файловая система, где каждый файл существует и ведет себя как /dev/null
(это не единственная реализация, которую я когда-либо видел).
¹, чтобы Не быть перепутанным с *BSD nullfs, который походит на bindfs.
То, что это делает, совершенно специализировано. При нажатии ctrl+c эмулятор терминала отправляет сигнал SIGINT в приоритетное приложение, которое инициировало соответствующий "обработчик сигналов". Обработчик сигналов по умолчанию для SIGINT завершает приложение. Но любая программа может установить свой собственный обработчик сигналов для SIGINT (включая обработчик сигналов, который не останавливает выполнение вообще).
По-видимому, vlc устанавливает обработчик сигналов, который пытается сделать некоторую очистку / корректное завершение на первый раз, когда это вызывается и отступает к поведению по умолчанию немедленно завершающегося выполнения, когда это вызывается во второй раз.
SIGINT, сигнал, отправленный Ctrl+C, традиционно говорит программе вспыхивать к ее основному циклу обработки команды, или если это не имеет смысла, для выхода чисто. Некоторые программы выполняют процедуру очистки, когда они получают SIGINT. Если программа так испорчена, что процедура очистки перестала работать в некоторых программах, второй Ctrl+C заставляет программу сразу выйти. Выполнение этого до каждого автора программы.
Если второй Ctrl+C не закрывает программу, попробуйте Ctrl + \, который отправляет SIGQUIT, более сильное (но все еще catchable сигнал), или попробуйте Ctrl+Z для приостановки программы и затем kill
команда (например. kill %1
который отправляет SIGTERM, традиционно менее сильный сигнал, чем SIGQUIT, к заданию номер 1). Если все остальное перестало работать, закройте программу с kill -KILL
, также известный как kill -9
, отправка неуловимого сигнала SIGKILL.