systemd 在关机期间无法卸载

systemd 在关机期间无法卸载

起初,我的机器在关闭时发出以下消息。

Job usere1000.service/stop running (59s / no Limit): User job app-gnome-yandexx2ddisk-1908.scope/stop running (58s / no limit)...

然后我设置KillUserProcesses=yes的是/etc/systemd/logind.conf.现在机器先关机但报错

Failed unmounting media-ismail-SSDWorking.mount - /media/ismail/SSDWorking.

顺便提一下,我Yandex.Disk通过守护进程进行的同步位于此 SSD (/media/ismail/SSDWorking) 中,该 SSD 之前已发出消息。

也许是因为我的系统在卸载之前没有杀死进程(我不确定)。

更新1:

我发现/run/systemd/generator/media-ismail-SSDWorking.mount有以下内容:

# Automatically generated by systemd-fstab-generator

[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=blockdev@dev-disk-by\x2dlabel-SSDWorking.target

[Mount]
What=/dev/disk/by-label/SSDWorking
Where=/media/ismail/SSDWorking
Options=nosuid,nodev,nofail,x-gvfs-show

我想如果我可以通过app-gnome-yandexx2ddisk-1908.scope添加After=systemd-fstab-generator 用于卸载那么它可能会解决问题。

更新2:

$ systemd-umount /dev/sda1
$ journalctl -xe
 A stop job for unit media-ismail-SSDWorking.mount has begun execution.
░░
░░ The job identifier is 3897.
Jul 07 12:38:22 debian-i5 umount[10089]: umount: /media/ismail/SSDWorking: target is busy.
Jul 07 12:38:22 debian-i5 systemd[1]: media-ismail-SSDWorking.mount: Mount process exited, code=exited, status=32/n/a
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ An n/a= process belonging to unit media-ismail-SSDWorking.mount has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 32.
Jul 07 12:38:22 debian-i5 systemd[1]: Failed unmounting media-ismail-SSDWorking.mount - /media/ismail/SSDWorking.
░░ Subject: A stop job for unit media-ismail-SSDWorking.mount has finished
░░
░░ The job identifier is 3897 and the job result is failed.

更新3:

如果我运行yandex-disk stop,那么systemd-mount /dev/sda1它就会卸载。所以问题是,系统yandex-disk在尝试卸载之前没有停止。

更新4:

我已经运行了以下命令:

sudo tee /etc/systemd/system/run-before-shutdown.service << END
[Unit]
Description=Run my custom task at shutdown
Requires=network.target
DefaultDependencies=no
Before=reboot.target shutdown.target

[Service]
Type=oneshot
User=ismail
Group=ismail
ExecStart=/bin/true
ExecStop=/usr/bin/bash -c '/usr/bin/yandex-disk stop'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
END

sudo systemctl daemon-reload
sudo systemctl start run-before-shutdown.service
sudo systemctl enable run-before-shutdown.service

仍然出现错误:

Failed unmounting media-ismail-SSDWorking.mount - /media/ismail/SSDWorking.

答案1

在这里。我将 yandex-disk 引入 systemd 后问题得到解决。

sudo tee /etc/systemd/system/yandex-disk.service << END
[Unit]
Description=Yandex Disk Service
After=network.target
RequiresMountsFor=/media/ismail/SSDWorking

[Service]
Type=forking
User=ismail
Group=ismail
ExecStart=/usr/bin/yandex-disk start
ExecStop=/usr/bin/yandex-disk stop

[Install]
WantedBy=multi-user.target
END

sudo systemctl start yandex-disk
sudo systemctl enable yandex-disk
sudo systemctl daemon-reload

相关内容