리눅스에서 로그인 쉘을 실행할 때 argv[0]에 -를 생략해도 되나요???
글쓴이: inviolable / 작성시간: 화, 2012/10/30 - 8:05오후
책 281p에는 이런 설명이 있습니다 :
(exec함수에 대한 설명 중, execl이나 execle처럼 l이 들어있는 exec함수는 첫번째 인수로 경로 이름을 받고 두번째 인수로 argv[0]을 받습니다.) 실제로 login은 하나의 대시(-)를 argv[0]의 접두어로 추가한 후에 셀을 실행한다. 이러면 셀은 자신이 하나의 로그인 셀로서 실행됨을 인식하고 시동 프로파일(start-up profile) 명령들을 실행한다.
책 313p에는 이런 설명이 있습니다 :
사용자가 이름을 입력하면 getty의 작업이 끝난다. 이제 getty는 다음에 해당하는 방식으로 login을 실행한다.
execle("/bin/login","login","-p",username,(char*)0,envp);
책 281페이지 설명대로라면 login실행시 argv[0](2번째 인수)에 접두어에 -가 붙어야 되는 것 아닌지요???
Forums:
/bin/login 은 shell 이 아닙니다.
/bin/login 은 shell 이 아닙니다.
아 그렇군요.
그럼 로그인 쉘을 실행한게 아니라 단지 로그인 작업을 수행하는 건가요???
281p에 나온 내용은, login이 그런 식으로
281p에 나온 내용은, login이 그런 식으로 실행된다는 것이 아니라 login이라는 프로그램이 내부적으로 셸을 실행할 때 그런식으로 한다는 말입니다.
313p에 나온 내용은 getty가 login을 실행시키는 방법을 기술하고 있습니다. 281p에 나온 내용 이전 단계를 말하는 것입니다.
314p를 보면 login이 로그인 셸을 실행시키는 방법이 나옵니다. 보시면 281p에 기술한 대로 '-'를 사용하고 있습니다.
답변 감사합니다.
같은 책을 보신 분을 보게 되네요... 답변 감사합니다.
댓글 달기