разница между bash, -bash и / bin / bash в выпуске ps

Кто-то породил настоящий цикл в bash (зарегистрированный как root) на сервере. Он продолжал процесс нереста, который, к счастью, вышел, но мне нужно было убить родителя. Я узнал, что он был порожден непосредственно из командной строки, а не из сценария, поэтому я решил использовать «-bash» и убил те процессы, которые принадлежат root. Он работал нормально.

Когда вы выполняете ps aux , в колонке команд появляются разные варианты bash.

 /bin/bash -bash -bash -bash /bin/bash bash /bin/bash /bin/bash bash 

и т.д..

Каковы различия?

Ведущая тире указывает на входную оболочку, от man bash :

Оболочка для входа – это тот, чей первый символ нулевого аргумента равен - , или один начинается с параметра --login .

Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с параметром --login , она сначала считывает и выполняет команды из файла /etc/profile , если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile , ~/.bash_login и ~/.profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения. Опция --noprofile может использоваться, когда оболочка начинает блокировать это поведение.

Когда оболочка входа завершается, bash читает и выполняет команды из файла ~/.bash_logout , если он существует.

bash и /bin/bash одинаковы, они просто были вызваны по-разному (первый не был вызван с использованием полного пути).