이번 글에서는 간단하게 좀비 프로세스에 대해서 알아보도록 하겠습니다. ps 명령어 사용법도 익히실 겸 겸사겸사. 이것은, 실행이 다 끝났는데, 아직 어딘가에서는, 삭제가 되지 않은, 정보가 남아 있는 프로세스를 의미합니다. 이들을 여러개 생성해 보면서 어떤 일이 일어나는지 보도록 하겠습니다. fork.c 프로그램입니다. 이것을 보면, pid가 -1일 때, while(1) 1번째 LOOP를 빠져 나옵니다. 이 때에는 프로세스를 생성할 수 없을 때일 거고요. fork()를 호출한 경우, 자식 프로세스가 생성이 되는데요. 이 때, 부모인 경우, pid 값이 0이 리턴이 되지 않기 때문에, 계속 while Loop를 돌 겁니다. 그러다가 fork 함수가 -1을 리턴한다면, (예를 들자면, 프로세스를 생성할 수 ..
OS/리눅스 검색 결과
폴더나 파일이 같은지 다른지 출력하려면 어떻게 해야 할까요? 다른 내용까지 보려면 어떻게 해야 할까요? 리눅스의 diff 명령어는 그것을 위한 명령어입니다. 이런 유틸은 인터넷에도 꽤 많이 있을 정도인데요. 저 같은 경우, 백준에서 (흔히 올라오는 질문 중 하나인) 2개의 소스코드 중 하나는 맞고 하나는 틀리다고 할 경우에 어느 부분이 어떻게 다른지부터 체크하는 편입니다. 이 때 쓸 수 있습니다. 먼저 diff가 어떻게 구현되었는지에 대한 것은, 아니면 그에 대한 알고리즘들은, 나중에 살펴보기로 하고, 이번 시간에는 폴더가 어떻게 다른지, 그리고 파일이 어떻게 다른지 알아내는 방법을 알아보도록 하겠습니다. 먼저, 1과 2 디렉토리가 있습니다. tree 명령어로, 폴더 내에 어떠한 것들이 있는지 출력해 봅..
alias는 별칭이라는 뜻입니다. 예를 들어서 A라는 이름을 가진 사람을, B라고 부를 수 있습니다. 이 때, B는 A의 별칭 (별명) 이라고 많이 이야기를 합니다. 명령어도 다르게 부를 수 있는데요. 예를 들어서, ll은 'ls -l --color=auto'의 다른 이름이라고 할 수 있어요. 엄청나게 긴 것을 단 2글자로 압축을 할 수도 있어요. 이 정도만 보면 꽤 대단하고 위력적인 것임을 알 수 있습니다. alias만 쉘에 쳐 보면, 현재 별칭이 적용되어 있는 것들만 출력이 됩니다. 먼저, 명령어 A를 B라는 이름으로 다시 부르게 하도록 하기 위해 등록하는 명령어는 alias B = 'A'입니다. 예를 들어서, head 라는 명령어를 hd라는 이름으로 다시 부르게 하려면, alias hd = 'hea..
3개월만에 쓰는 명령어 시간입니다. ln 명령어는 저번에, 하드링크와 심볼릭 링크를 언급했을 때, 언급을 한 적이 있었습니다. [관련글] [리눅스/명령어] - 하드 링크 vs 심볼릭 링크 : 어느 것을 가리키는가? 복습도 다시 한 번 해 보시는 것도 괜찮을 듯 싶네요. 링크에 대해서 조금 더 보는 것도 괜찮고요. -s를 붙이면 윈도우에서 말하는 '바로가기'를, 그렇지 않으면 하드 링크를 생성합니다. 예제를 보겠습니다. 먼저, 파일이 이렇게 있어요. 저는 -i 옵션을 주어서 inode 번호만을 출력을 했습니다. 1.txt의 번호와, 2의 번호가 같아요. 282861로요. 그러면, 1.txt와 2는 같은 파일을 가리키는 것이라고 봐도 무난합니다. alias라고 생각하시면 좋겠습니다. 이것을 그림으로 그리면 ..
리눅스에서 wait와 waitpid는 프로세스의 종료 상태를 리턴해 주는 함수입니다. pid_t waitpid(pid_t pid,int *statloc,int options); 성공을 하면, 프로세스 ID를, 오류가 발생하면 -1을, 그 외의 경우에는 0을 리턴합니다. 그런데, 이 함수가 wait와 다른 점은, 특정한 자식 프로세스를 기다리게 할 수 있다는 것입니다. 일단 위의 두 옵션만 아셔도 무난할 듯 싶어요. 프로세스 그룹은, 추후에 다시 설명해 드리도록 하겠습니다. 3번째 인자의 옵션이 중요한데요. WNOHANG, WCONTINUED, WUNTRACED 등이 있어요. sleep sort를 설명했을 때, 옵션으로 준 것은 이 중 1번째 것이였는데요. 이 때에는 종료된 자식이 존재하지 않아도, 블로킹..
최근댓글