Что монтирует мой systemd autoount?
Я настроил автомонтирование systemd для sshfs в /etc/fstab примерно следующим образом:
me@server: /mount/point fuse.sshfs noauto,_netdev,x-systemd.automount,x-systemd.idle-timeout=900,default_permissions,allow_other,uid=josh,gid=josh,transform_symlinks 0 0
Это прекрасно работает, за исключением того, что иногда я замечаю, что он смонтирован, хотя недавно я к нему не обращался. Глядя в journalctl, очевидно, есть процесс, называемый pool
это заставляет systemd монтировать его так часто:
$ journalctl -u mount-point.automount -n10
Mar 04 22:17:39 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 11546 (pool)
Mar 04 22:53:03 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 27856 (pool)
Mar 05 00:31:36 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 9083 (pool)
Mar 05 01:44:21 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 32232 (pool)
Mar 05 17:32:31 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 10771 (pool)
Mar 05 17:59:01 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 18662 (pool)
Mar 05 20:05:10 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 3259 (pool)
Mar 05 20:36:21 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 16858 (pool)
Mar 05 22:29:33 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 20812 (pool)
Mar 05 23:39:16 hostname systemd[1]: mount-point.automount: Got automount request for /mount/point, triggered by 15976 (pool)
Я искал двоичные файлы под названием pool
в моей системе, но я не могу найти ни одного, и, кажется, нет никакого процесса, называемого pool
работает в данный момент. Я бы предпочел не тусоваться и смотреть журнал, пока что-то не появится, чтобы попытаться выяснить, что это такое, хотя, думаю, я сделаю это, если придется.
Что заставляет systemd монтировать мой автомонтирование?
0 ответов
Я предполагаю, что ваш автомонтаж находится под /media
.
У меня была та же проблема, очень недолговечные процессы запускали мой автоматический монтирование каждые несколько минут. Получение любой информации о них было чрезвычайно сложной задачей.
Для протокола, что я сделал:
- Сначала запустите оболочку с
stdbuf -i0 -oL -eL bash
(Это запускает оболочку с буферизацией каналов, настроенную для немедленной отправки каждой строки, а не по умолчанию, которая буферизует кучу вывода перед фактической отправкой чего-либо.) - В этой оболочке запустите эту ужасную командную строку, которую я действительно должен был отформатировать в правильный сценарий в файле.sh, но не сделал: \
journalctl --unit UNITNAME.automount -f | grep -oP '(?<=^|[^0-9])[0-9]{4,}(?=[^0-9]|$)' | while read pid; do if [ -e /proc/"$pid"/status ] ; then if [ -e proc-capture/"$pid" ] ; then echo "Already captured PID $pid. Ignoring"; else echo "Capturing $pid."; mkdir proc-capture/"$pid"; cp /proc/"$pid"/status proc-capture/"$pid"; fi; else echo "No current status for PID $pid. Skipping"; fi; done
(При необходимости измените имена модулей и выходной каталог, если хотите.)
- Подождите.
Примечание: для этого вам может потребоваться root. Я всегда добавляю в группу свою учетную запись обычного пользователяadm
, который дает доступ для чтения к материалам системного журнала, включая journalctl
(в Debian, но я думаю, что то же самое и в Ubuntu), поэтому мне не нужно было sudo или что-то еще, чтобы скрипт работал.
Затем, когда процесс опроса запускается и делает свое дело, сценарий копирует его /proc/<PID>/status
в proc-capture/<PID>/
(в вашем текущем рабочем каталоге) сразу, до того, как процесс завершится и этот файл состояния перестанет существовать. Этот файл сообщит вам PPID, то есть PID родительского элемента PID, о котором идет речь. В моем случае родителем был systemd, который делал все закулисное волшебство, связанное с автоматическим подключением USB-накопителей под/media
момент, когда они подключены и тому подобное. Можно настроить эту подсистему так, чтобы она игнорировала указанные каталоги в/media
, но в моем случае просто перемещаю автомонтаж из /media
к /mnt
решила проблему, поэтому я не стал копать глубже.