OS

    [Linux] nohup 세션이 끊겨도 계속 실행되도록 해보자

    개요 nohup 명령어는 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어입니다. 기본적으로 터미널에서 세션 로그아웃(logout)이 발생하면 리눅스는 해당 터미널에서 실행한 프로세스들에게 HUP signal 이 전달하여 종료시키게 되는데, 이 HUP signal을 프로세스가 무시(ignore)하도록 하는 명령어라서 nohup 이라는 이름인 것입니다. 그래서 결과적으로 터미널에서 연결이 끊기거나 터미널을 종료해도 실행했던 프로세스들이 계속 실행될 수 있는 것입니다. 또한 nohup 명령어는 표준 출력(standard output)을 nohup.out 파일로 재지향(redirection) 합니다. 터미널이 종료되어도 표준 출력은 nohup.out 파일..

    [Linux] kill 프로세스를 '안전하게' 종료시켜보자

    개요 kill 명령어는 이름 때문에 프로세스를 강제로 종료시키는 명령어로 오해를 사기 쉬운데 실제로는 프로세스에 시그널(signal)을 보내는 명령어입니다. 이름이 kill 인 이유는 어떤 시그널을 보낼 지 지정하지 않으면 기본적으로 SIGTERM 시그널을 보내게 되는데 SIGTERM의 기본 동작이 프로그램 종료이기 때문입니다. 물론 프로세스에 SIGKILL 시그널을 보내 강제로 종료시킬 수도 있습니다. 그렇지만 일반적인 상황에서 SIGKILL 시그널을 보내는 것은 권장되지 않습니다. 본래 프로그램을 설계 할 때 대부분의 경우 종료 시그널을 받았을 때 처리하고 있던 데이터가 안전하게 정리 될 수 있도록 설계합니다. SIGTERM, SIGINT 등의 종료 시그널에 대해 시그널 핸들러(handler)를 등록..

    [Linux] ps 로 실행 중인 프로세스 확인하기

    개요 ps 명령어는 리눅스에서 현재 실행중인 프로세스를 확인하는 명령어 입니다. Process Status에서 따온 이름이죠. 이름 그대로 명령어를 실행하면 현재 실행되고 있는 프로세스들의 정보를 화면에 출력합니다. 윈도우에서 특정 프로세스가 실행 중인지 확인하거나 강제 종료하기 위해 작업 관리자를 사용하듯이 리눅스에서는 ps 명령어가 자주 사용됩니다. 특히 GUI를 사용하지 않는 서버 환경에서는 대부분의 프로세스들이 백그라운드에서 동작하기 때문에 특정 프로세스가 동작 중인지 확인하기 위해서 많이 쓰입니다. bash 스크립트(script)를 통한 자동화에도 ps 명령어가 자주 사용되는데요. 주로 특정 프로세스에 시그널(signal)을 보내야 할 때 PID(process id)를 식별하기 위해서 쓰이기도 ..

    [Linux] 하이픈(-) 으로 시작하는 파일 다루기

    개요 안녕하세요 피터입니다. 오늘은 리눅스(linux)에서 하이픈(-)으로 시작하는 파일을 처리하는 방법에 대해서 알려드리겠습니다. 간혹 명렁어나 스크립트를 잘못 사용하면 하이픈으로 시작하는 파일이 생성되는 경우가 있습니다. 리눅스에서 하이픈은 명령어에서 옵션을 지정 할 때 사용되기 때문에 파일명이 하이픈으로 시작하면 shell 에서 다루기가 쉽지 않습니다. 일반적인 쉘의 쿼우팅(Quotiong) 방법으로 처리하려 하면 아래와 같이 잘못된 옵션이라는 에러 메시지를 보게 될 확율이 높습니다. [root@peterdev dummy]# ll total 0 -rw-r--r--. 1 root root 0 Oct 30 06:48 -d -rw-r--r--. 1 root root 0 Oct 30 06:50 p-s -r..

    [Linux] tail 로 실시간 로그 보기

    개요tail 명령어는 리눅스에서 파일의 내용을 출력하는 기능을 수행합니다.cat 명령어와 다른점은 cat은 파일 전체의 내용을 출력하는 데 비해 tail 명령어는 파일의 맨 끝에서부터 지정된 라인 만큼 출력해줍니다. 또한 -f 옵션을 이용해서 실시간으로 파일에 추가된 내용을 출력할 수 있습니다. tail 명령어와 유사한 명령어로는 head 명령어가 있습니다. head 명령어는 맨 앞에서부터 지정된 라인 만큼 출력해줍니다. 사용법 리눅스에서 사용되는 명령어는 모두 대소문자를 구분하니 주의해주세요.tail 명령어에 대한 자세한 설명은 tail --help 명령어를 통해 볼 수 있습니다. Usage: tail [OPTION]... [FILE]... Print the last 10 lines of each FI..

    [Linux] cat 파일 내용 출력하기

    개요cat 명령어는 리눅스에서 파일의 내용을 출력하는 기능을 수행합니다. 사용법 리눅스에서 사용되는 명령어는 모두 대소문자를 구분하니 주의해주세요.cat 명령어에 대한 자세한 설명은 cat --help 명령어를 통해 볼 수 있습니다. Usage: cat [OPTION]... [FILE]... Concatenate FILE(s), or standard input, to standard output. -A, --show-all equivalent to -vET -b, --number-nonblank number nonempty output lines, overrides -n -e equivalent to -vE -E, --show-ends display $ at end of each line -n, --nu..

    [Linux] 재지향(Redirection)에 대한 이해

    안녕하세요 피터입니다.오늘은 리눅스의 I/O 재지향(redirection)에 대해서 설명드리겠습니다. 재지향은 파이프(pipe)와 더불어 리눅스의 명령어들을 훨씬 강력하게 무장시켜주는 역할을 하는 핵심 기능입니다. 마치 그 자체로는 특별한 맛이 나지 않지만 단맛이나 짠맛 같은 다른 맛을 훨씬 강하게 만들어주는 조미료와 같다고 할까요? 파이프는 아래 글에서 자세히 보실 수 있습니다. [Linux] 파이프(pipe)에 대한 이해 개요리눅스 쉘은 항상 아래와 같이 표준 입출력을 파일 형태로 열고 있습니다. 표준입력(stdin: 키보드)표준출력(stdout: 모니터)표준에러(stderr: 모니터) 기본적으로 프로그램은 연산 결과를 출력 장치(파일, 모니터, 프린터 등)로 내보내는데요. 이 출력되는 데이터를 임의..

    [Linux] chmod 로 파일 권한 변경하기

    개요 chmod 명령어는 리눅스의 파일이나 디렉토리의 권한을 변경하는 명령어입니다. 사용법 리눅스에서 사용되는 명령어는 모두 대소문자를 구분하니 주의해주세요.chmod 명령어의 사용법은 다음과 같습니다. Usage: chmod [OPTION]... MODE[,MODE]... FILE... or: chmod [OPTION]... OCTAL-MODE FILE... or: chmod [OPTION]... --reference=RFILE FILE... Change the mode of each FILE to MODE. With --reference, change the mode of each FILE to that of RFILE. -c, --changes like verbose but report only w..