Вы выполняете эти команды от имени пользователя root? Я считаю, что команда list -unit -files — это именно то, что вам нужно. В нем перечислены файлы модулей, а не только список загруженных сервисов. Я думаю, вы, вероятно, столкнулись с проблемой настройки вашего сервиса.
Можно начать с создания фиктивной службы и убедиться, что она зарегистрирована. Что-то, что на самом деле ничего не делает. Затем, как только это заработает, вы сможете увидеть, чем оно отличается от сервиса, который не работает. Или сравните файл вашего сервисного модуля с одним из простых сервисов, которые работают.
lsblk
использует базу данных UDev для получения информации о файловых системах, поэтому, если она не показывает тип файловой системы, вероятно, что-то не так с UDev. Чтобы проверить, что UDev знает об устройстве, используйте udevadm info /dev/sdb
и найдите клавишу ID_FS_TYPE
.
Также возможно, что UDev слишком медленно работает на вашем устройстве, а значение еще не обновлено в базе данных, поэтому lsblk
выводит «старое» значение, то есть «нет файловой системы». Вы можете попробовать запустить udevadm settle
перед запуском lsblk
.
В качестве альтернативы вы можете использоватьsudo blkid -p /dev/sdb
(или sudo blkid -p /dev/sdb -s TYPE -o value
для вывода только значения типа файловой системы ). blkid
с опцией -p
фактически считывает область метаданных устройства (, поэтому ему нужен sudo
), чтобы информация всегда была правильной/актуальной.