如果我ps aux | grep su ps aux | grep su我切换用户几次后,目前有以下几点:
fmaster 24811 0.0 1.3 10652 7000 pts/3 S 23:11 0:00 -su root 24932 0.0 0.2 5352 1464 pts/3 S 23:12 0:00 su - root root 24941 0.0 0.8 7772 4256 pts/3 S 23:12 0:00 -su fmaster 27148 0.0 0.2 5352 1436 pts/3 S 23:28 0:00 su - fmaster fmaster 27155 0.0 1.3 10652 7044 pts/3 S 23:28 0:00 -su root 27284 0.0 0.2 5352 1468 pts/3 S 23:29 0:00 su - root 27293 0.0 0.8 7732 4208 pts/3 S 23:29 0:00 -su fmaster 27685 0.0 0.2 5352 1424 pts/3 S 23:32 0:00 su - fmaster fmaster 27692 0.0 1.3 10652 7060 pts/3 S 23:32 0:00 -su root 27842 0.0 0.2 5352 1468 pts/3 S 23:32 0:00 su - root 27853 0.0 0.8 7748 4244 pts/3 S 23:32 0:00 -su fmaster 29407 0.0 0.2 5352 1432 pts/3 S 23:41 0:00 su - fmaster fmaster 29414 0.0 1.4 10656 7152 pts/3 S 23:41 0:00 -su root 29846 0.0 0.2 5352 1468 pts/3 S 23:44 0:00 su - root 29853 0.0 0.8 7700 4156 pts/3 S 23:44 0:00 -su fmaster 30008 0.0 0.2 5352 1436 pts/3 S 23:45 0:00 su - fmaster fmaster 30015 0.0 1.3 10652 7124 pts/3 S 23:45 0:00 -su root 30180 0.0 0.2 5352 1468 pts/3 S 23:46 0:00 su - root 30189 0.0 0.8 7744 4244 pts/3 S 23:46 0:00 -su
这些进程是否自动清理? 或者我必须手动杀死他们?
这里有一个命令: killall
killall su
当你“切换用户”时,你实际上是以该用户的身份产生一个新的shell。 您的旧shell仍然存在,并且是当前shell的父项。 把它想象成一个新的纸板箱,然后把它放在你现有的纸箱里,然后在里面跳。
如果您将用户从“root”切换到“fmaster”并再次回到根目录,则您将有三个运行的shell,每个都是下一个的父级。 做这十次,你现在有11壳运行。 这些都占用内存和CPU,否则他们没有任何伤害。
如果安装了它,可以使用命令pstree将所有这些shell链接在一起。 如果没有,可以使用ps -ejH或ps -axjf 。
当你从服务器断开连接时,它们将全部结束。
Joelbuild议的killall命令也会有类似的效果,但这是一种奇怪的做事方式。 对于初学者来说,如果你正在使用fmaster的权限运行一个shell,只有fmaster shell会被杀死。 即每隔一秒。 但是,由于所有的根shell现在都有其父母和唯一的孩子被杀死,他们也将终止。 如果你以root身份执行killall命令,所有这些命令都将被终止。 无论哪种方式,这将毫不客气地将您从所有的子壳中卸载并返回到您的原始loginshell中。
你可以通过inputexit , logout或者ctrl-d来结束当前的shell并返回到前一个shell。
除非你特别需要以root身份运行一个shell,否则你通常最好使用sudo来运行任何你想用root权限运行的命令。