LINUX.ORG.RU

systemd не монтирует сетевые папки Windows и не перезапускает юнит Type=oneshet

 , , ,


0

1

Здравствуйте! У меня был юнит на АльтЛинукс, который нормально подключал сетевые папки Windows. В нем был один костыль - перезапуск через 5 секунд, потому что сетевые папки не подключались при первом запуске юнита, хотя стояло требование сеть онлайн.

На Centos 7 этот юнит перестал работать, так как Centos жалуется на Restart для типа Type=oneshot. В юните несколько ExecStart, поэтому я могу использовать тип только oneshot. Но я не могу понять, как запускать его вовремя: когда сеть онлайн и диски подключатся.

Вот текущий код юнита my-helpers.service:

[Unit]
Description=My Helpers
After=network-online.target
Wants=network-online.target

#StartLimitInterval=200
#StartLimitBurst=5

[Service]
Type=oneshot
RemainAfterExit=yes

#Restart=always
#RestartSec=30

ExecStart=/usr/bin/mount -t cifs '//ip/Обмен' /mnt/obmen -o 'username=user,password=userpass,workgroup=WORKGROUP,uid=user'
ExecStart=/usr/bin/mount -t cifs '//ip/секретно' /mnt/secret -o 'username=user,password=userpass,workgroup=WORKGROUP,uid=user'


ExecStop=/usr/bin/umount /mnt/obmen
ExecStop=/usr/bin/umount /mnt/secret


[Install]
WantedBy=multi-user.target

Юнит добавлен а втозагрузку (enable), но не подключает диски. Приходится каждый раз после запуска системы запускать его вручную (опять): `systemctl start my-helpers` - только так диски подключаются.

Подскажите, как поставить интервал на запуск юнита, например, через 20 секунд. Ну или как все-таки определить состояние сети, при котором сетевые диски Windows подключатся - network-online.target недостаточно.

Ответ на: комментарий от comoestasyan

тут написано как сделать задержку запуска

Это не задержка запуска, а промежуток времени отведенный для запуска.

И в твоём случае она никак не влияет на поведение даже при явном указании, теперь подумай почему.

surefire ★★★
()
Последнее исправление: surefire (всего исправлений: 1)
Ответ на: комментарий от surefire

лорчую, монтировать в .service юнитах - моветон.

If it breaks, you get to keep both pieces and we get to laugh at you.

eternal_sorrow ★★★★★
()
Последнее исправление: eternal_sorrow (всего исправлений: 2)

переделайте в .mount-юнит, навскидку не вижу препятствий

littlechris ★★★
()

А почему это все оформлено в один юнит. Здесь на мой взгляд уместнее было бы разбить его на два. Причем монтирующих (.mount).

TeopeTuK ★★★★
()

Во-первых, перепиши это на два юнита .mount

Во-вторых, проверь, что network-online.target действительно зависит от поднятия сети (systemctl list-dependencies network-online.target).

gasinvein ★★★
()
Ответ на: комментарий от gasinvein
# systemctl list-dependencies network-online.target
network-online.target
● └─NetworkManager-wait-online.service

переписано через fstab. по команде `# mount -a` нормально подключаются все сетевые папки, но при перезагрузке не плдключаются. что делать?

# tail -n 2 /etc/fstab
#my windows shares
//xx.xx.xx.xx/Обмен	/mnt/obmen	cifs	username=user,password=userpass,workgroup=WORKGROUP,uid=user	0 0	

подскажите, что мешает fstab нормально подключить сетевую папку? как тут поставить задержку?

comoestasyan
() автор топика

systemd не монтирует сетевые папки Windows

да? ну неужели наконец то системд починили?
ну теперь точно можно переходить на эту новую систему инициализации!

darkenshvein ★★★★★
()
Ответ на: комментарий от comoestasyan

переписано через fstab. по команде `# mount -a` нормально подключаются все сетевые папки, но при перезагрузке не плдключаются. что делать?

добавить параметр _netdev

keir ★★
()
Ответ на: комментарий от keir

не помогло:

#my windows shares
//xx.xx.xx.xx/Обмен	/mnt/obmen	cifs	username=user,password=userpass,workgroup=WORKGROUP,uid=user,_netdev	0 0	
comoestasyan
() автор топика
Ответ на: комментарий от gasinvein
# journalctl -u /mnt/obmen -b 0

 Logs begin at Вт 2019-03-05 07:56:04 MSK, end at Вт 2019-03-05 08:03:03 MSK. --
мар 05 07:56:32 user systemd[1]: Mounting /mnt/obmen...
мар 05 07:56:36 user mount[4793]: Unable to find suitable address.
мар 05 07:56:36 user systemd[1]: mnt-obmen.mount mount process exited, code=exited status=32
мар 05 07:56:36 user systemd[1]: Failed to mount /mnt/obmen.
мар 05 07:56:36 user systemd[1]: Unit mnt-obmen.mount entered failed state.
comoestasyan
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.