ps 출력에서 ​​bash, -bash 및 /bin/bash의 차이점

ps 출력에서 ​​bash, -bash 및 /bin/bash의 차이점

누군가 서버의 bash에서 while true 루프를 생성했습니다(루트로 로그인). 프로세스를 계속 생성하고 다행히 종료되지만 상위 프로세스를 종료해야 합니다. 스크립트가 아닌 명령줄에서 직접 생성되었다는 사실을 알게 되었기 때문에 "-bash"를 찾아 루트가 소유한 프로세스를 종료했습니다. 좋은 결과.

이렇게 하면 ps auxbash의 다양한 변형이 명령줄에 나타납니다.

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

등..

차이점이 뭐야?

답변1

선행 대시는 다음의 로그인 셸을 나타냅니다 man bash.

로그인 쉘에 대한 인수의 첫 번째 문자는 0이거나 -옵션으로 시작됩니다 --login.

bash가 이 옵션을 사용하여 대화형 로그인 셸이나 비대화형 셸로 호출되면 --login먼저 파일 /etc/profile(파일이 존재하는 경우)에서 명령을 읽고 실행합니다. 파일을 읽은 후 ~/.bash_profile, ~/.bash_login, 를 순서대로 찾아 존재 ~/.profile하고 읽을 수 있는 첫 번째 파일부터 명령을 읽고 실행합니다. --noprofile이 옵션을 사용하면 쉘이 시작될 때 이 동작을 비활성화할 수 있습니다.

로그인 쉘이 종료되면 bash는 파일이 ~/.bash_logout존재하는 경우 해당 명령을 읽고 실행합니다.

bash/bin/bash동일하지만 다르게 호출될 뿐입니다(전자는 전체 경로를 사용하여 호출되지 않습니다) .

관련 정보