所有命令只能通过本地终端完成

所有命令只能通过本地终端完成

我需要减少远程 Ubuntu 服务器的 /var 分区,这样我就无法使用 live cd 或任何类似的东西。

我尝试卸载它,但发生了以下情况

umount /var/
umount: /var: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

所以我使用 lsof 查看哪些进程使 /var 分区处于繁忙状态。除了这个进程,我设法停止了其他几个进程。

lsof /var/
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
init      1 root   13w   REG    8,3       68 2474064 /var/log/upstart/systemd-logind.log.1 (deleted)

奇怪的是,文件 systemd-logind.log.1 不存在

lsof /var/log/upstart/systemd-logind.log.1
lsof: status error on /var/log/upstart/systemd-logind.log.1: No such file or directory

那么如何阻止 init 进程使用我的 /var 分区?

答案1

所有命令只能通过本地终端完成

警告:远程执行此操作(例如通过 SSH)将终止您当前的会话,并且无法连接,直到您重新启动主机!

使系统进入单用户模式:init 1

可以看到哪些进程正在阻止文件进入挂载点lsof -f | grep "/var/"

停止服务:service dbus stop

卸载目录/var/umount /var/

所有命令:

init 1
service dbus stop
umount /var/

答案2

跑步sudo service systemd-logind stop

这是 SystemD 登录管理器(运行man systemd-logind以获取更多信息)。

不要忘记,一旦您完成了文件系统,请使用 来启动它sudo service systemd-logind start。如果您忘记了,它不会阻止登录,但我想它会停止记录某些信息。

相关内容