LINUX

포스트: 477|조회수: 0|TERM
Items

Posts

477 posts

리눅스에서 파일을 인자(argument)로 사용하는 곳에 표준입출력 사용하기

반달가면|2019년 1월 24일

제목이 약간 복잡한데, 좀 더 자세히 설명해 보자면 이렇다. 인자(argument)로 파일명을 입력 받아서 작업을 하는 프로그램/스크립트가 있는데, 파일 대신에 터미널창의 출력(표준출력)을 파이프(|)로 넘겨서 마치 파일의 내용인 것처럼 입력하고 싶은 경우다. 좀 억지스럽긴 하지만, 편의상 예를 들어 test.sh 스크립트의 내용이 아래와 같다고 해 보자. # test.sh 내용 cat test.sh file "$1" cat "$1" 위 스크립트의 내용을 보면 file 명령어로 파일 종류를 식별하여 출력한 후에 cat 명령어로 해당 파일의 내용을 출력하는 것임을 알 수 있다. # test.sh 실행 예시 bash test.sh my_doc.pdf my_doc.pdf: PDF d

[라즈베리파이] 프로세스: do_exit() 함수 분석

Guillermo Austin Kim|2019년 1월 18일

do_exit() 함수로 커널이 프로세스를 종료 시키는 세부 동작 못지 않게 프로세스가 종료되는 흐름을 파악하는 것이 중요합니다. 그 이유는 무엇일까요? 유저 어플리케이션 프로세스나 커널 프로세스가 예외 상황에서 의도하지 않게 종료해서 문제가 발생하는 경우가 있습니다. 이런 문제를 만났을 때 커널 어느 함수부터 분석을 해야할 지 결정할 수 있습니다. 이번에는 do_exit() 함수가 어떻게 실행되는지 알아봅시다. - exit() 시스템 콜 실행유저 어플리케이션 프로세스가 자신을 종료하려면 리눅스 저수준 함수로 exit() 함수를 호출합니다. 이 때 시스템 콜을 발생시킨 다음 sys_group_exit() 시스템콜 핸들러를 실행합니다. - 다른 프로세스가 프로세스 종료 시그널을 전달했을 경우프로세스

우분투 14.04 기반 클라이언트에서 우분투 18.04 기반 NFS 서버에 접속하는 문제

반달가면|2019년 1월 18일

정확히 말하자면, 우분투 14.04LTS 기반인 리눅스 민트 17에서 우분투 18.04LTS 기반인 리눅스 민트 19의 NFS 공유 디렉토리에 접속하는 문제다. 리눅스 민트 19 서버에서 정상적으로 NFS를 다 설정하고(NFS 서버 설정은 이전 게시물을 참고하자. 여기로) 방화벽에서도 NFS 접속을 허용하도록 해 두었는데, 클라이언트에서 접속을 하면 접근 불가 오류 메시지가 계속 나왔다. # 클라이언트에서 NFS 서버로 접속 시도 sudo mount -t nfs server.net:/nfs_export_dir/ ~/nfs_dir mount.nfs: access denied by server while mounting server.net:/nfs_export_dir/ 아무리 이리 저리 찾아

[라즈베리파이] 프로세스 생성: _do_fork() copy_process() 함수 분석

Guillermo Austin Kim|2019년 1월 17일

이전 시간까지 유저 프로세스와 커널 프로세스가 어떤 흐름으로 생성되는지 살펴봤습니다.둘 다 _do_fork() 함수를 호출한다는 사실을 알 수 있습니다. 프로세스 생성 시 공통으로 실행하는 _do_fork() 함수 코드를 분석하면서 커널이 어떻게 프로세스를 생성하는지 살펴봅니다. _do_fork() 함수_do_fork() 함수을 분석하기 앞서 이 함수 동작을 분류해봅시다. 1단계: 프로세스 생성copy_process() 함수를 호출해서 프로세스를 생성합니다. 프로세스를 생성하는 세부 동작을 파악하려면 copy_process() 함수를 분석할 필요가 있습니다. 2단계: 생성한 프로세스 실행 요청copy_process() 함수를 호출해서 프로세스 생성을 마쳤으면 wake_up_new_task() 함수를