Другая альтернатива: переверните вашу логику.
if ! lsof "$filename" >/dev/null;then
echo "deleting $filename"
rm "$filename"
fi
Я подозреваю, что это связано с тем, как Linux обнаруживает устройства PS/2, которые подключаются после загрузки системы. ("горячее подключение" ).
Порты PS/2 были разработаны в эпоху, когда горячее подключение не поддерживалось. Например. ранние версии Microsoft Windows не поддерживали горячее подключение портов PS/2.
Я подозреваю, что сигнала горячего подключения нет, или на него нельзя полагаться. Таким образом, Linux может просто прослушивать любые данные на несвязанных портах PS/2. Когда он получает некоторые данные, он должен повторно -проверить порт.
По крайней мере, это хорошая теория. Однако я не вижу, чтобы то же самое происходило, если я отвязываю комбинированное устройство сенсорной панели/трекпойнта на другом ноутбуке (Dell Latitude E5450 ). Мне нужно снова вручную привязать драйвер; он волшебным образом не начинает работать снова, например. когда я нажимаю кнопку.