Дескриптор файла 1 переводит в stdout Файловую структуру в Ядре, Открывают Files Table.
Это - недоразумение. Таблица файлов ядра не имеет ничего вообще, чтобы сделать с файловыми структурами пространства пользователя.
В любом случае ядро имеет два уровня абстракции. Существует внутренняя структура, которая представляет сам файл, который является считаемой ссылкой. Существует "открытое описание файла", которое является считаемой ссылкой. И затем существует дескриптор файла, который не является считаемой ссылкой. Файловая структура указывает путь к самому inode. Открытое описание файла содержит вещи как открытый режим и указатель файла.
Когда Вы звоните близко, Вы всегда закрываете дескриптор файла. Когда дескриптор файла закрывается, подсчет ссылок на его открытом описании файла постепенно уменьшается. Если это переходит к нулю, открытое описание файла также выпущено, и подсчет ссылок на самом файле постепенно уменьшается. Только если это переходит к нулю, освобожденная файловая структура ядра.
Нет никакого шанса для одного процесса для выпуска ресурса, который использует другой процесс, потому что совместно используемые ресурсы являются считаемой ссылкой.
Примечание: Я не могу протестировать этот ответ.
Предположение, что Вы хотите отключить Bluetooth и не только индикатор, rfkill утилита, делает то, что Вы хотите. Следующая команда должна отключить Bluetooth:
$ rfkill block bluetooth
Чтобы сделать это на каждой начальной загрузке, эта строка может быть помещена в /etc/rc.local
, другой пользовательский init сценарий или (при наличии) новомодный сценарий. Я рекомендую использовать полный путь исполняемого файла внутри /etc/rc.local
или в пользовательском init сценарии. В моей системе это /sbin/rfkill
, но может быть найден с помощью команды which rfkill
. Таким образом в моей системе, я поместил бы следующую команду в /etc/rc.local
где-нибудь прежде exit 0
:
/sbin/rfkill block bluetooth
В зависимости от Вашей установки Debian Вы не можете иметь /etc/rc.local
. В этом случае пользовательский init сценарий может быть способом пойти. init сценарий мог быть сохранен в /etc/init.d/disable-bluetooth
и содержите что-то как:
#!/bin/sh
/sbin/rfkill block bluetooth
Затем удостоверьтесь, что команда является исполняемым файлом (chmod 755
) и добавьте его для запущений (update-rc.d disable-bluetooth defaults
).
Примером новомодного новомодного сценария был бы названный файл /etc/init/disable-bluetooth.conf
содержа что-то как:
description "Disable Bluetooth devices"
start on startup
task
exec /sbin/rfkill block bluetooth
rfkill
использование /dev/rfkill
который является интерфейсом, обеспеченным ядром Linux.
В debian/kali проверьте следующее:
в /etc/default/bluetoothBLUETOOTH_ENABLED=0
в /etc/bluetooth/main.confAutoEnable=false
и если у вас есть blueman -апплет , проверьте его настройки PowerManager плагина