Если я 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 su
Когда вы «переключаете пользователей», вы фактически создаете новую оболочку в качестве этого пользователя. Ваша старая оболочка все еще существует и является родительской для вашей текущей оболочки. Думайте об этом, как о том, чтобы построить новую картонную коробку для игры, поместить ее в существующую картонную коробку и затем прыгнуть внутрь нее.
Если вы «переключите пользователей» с root на fmaster и снова обратно на root, у вас будут запущены три оболочки, каждая из которых является родительской для следующей. Сделайте это десять раз, и теперь у вас работает 11 оболочек. Все они занимают память и процессор, но в остальном не причиняют вреда.
Если он у вас установлен, вы можете увидеть все эти оболочки, связанные вместе с командой pstree
. Если нет, вы можете использовать ps -ejH
или ps -axjf
.
Все они закончатся, когда вы отключитесь от сервера.
В killall
Команда, предложенная Джоэлом, будет иметь аналогичный эффект, но это странный способ делать что-то. Для начала, если вы в настоящее время работаете в оболочке с разрешениями fmaster, только оболочки fmaster будут убиты. то есть каждый второй. Однако, поскольку все корневые оболочки теперь будут убивать и их родительский, и их единственный дочерний элемент, они также будут завершены. Если вы запустите killall
как root, все они будут убиты. В любом случае, это бесцеремонно выбросит вас из всех подоболочек и вернет в исходную оболочку входа.
Вы можете завершить текущую оболочку и вернуться к предыдущей, набрав либо exit
, logout
или ctrl-d
.
Если у вас нет особой необходимости запускать оболочку от имени root, вам обычно лучше использовать sudo
перед любыми командами, которые вы хотите запустить с правами root.