본문 바로가기

리눅스

(6)
프로세스 관리툴 : 리눅스에서 프로그램 강제 종료하기 (htop) 컴퓨터를 이용하다 보면 다양한 이유로 컴퓨터가 느려질 수 있죠. 그 이유 중 가장 높은 확률로 발생하는 문제는 특정 프로세스가 CPU를 과도하게 이용하거나, 메모리를 너무 많이 써서 SWAP을 이용하게 된 경우죠. 이럴 때 우린 프로세스 관리자를 켜고, 문제가 된 프로세스를 강제 종료시킵니다. 그런데 만약 이런 문제가 터미널로 접속하여 이용하는 고성능 컴퓨팅 머신 혹은 AWS 서버 등에서 발생하면 어떻게 해야 할까요. 우리에겐 비주얼로 메모리와 CPU의 사용량을 보여줄 툴이 없습니다. 숙련자는 "ps" 커맨드를 이용하여, 문제가 된 프로세스를 찾고 "kill" 명령어로 프로세스를 강제 종료시킵니다. 방법은 아래와 같습니다. 그보다 쉬운 툴을 이용하는 방법은 구분선 밑에 있습니다. 터미널에서 구동된 프로세..
로그아웃 이후 프로세스 유지 & 종료 최근 일반 유저에게 배포되는 리눅스는 보통 터미널이 종료 되거나 로그아웃( 쉘 종료 )을 해도 백그라운드에서 구동하던 프로세스를 유지 시켜 주는 경향이 있습니다. 하지만 만약 리눅스를 서버로 구동하고 있거나, AWS와 같은 웹 서비스를 이용한다면, 로그 아웃 시 프로세스는 종료 시켜야 합니다. 이 글은 해당 설정을 켜고 끄는 내용을 기술합니다. 쉘 종료시 백그라운드 프로세스 끄기 shopt -s huponexit 쉘 종료후에도 백그라운드 프로세스 유지 shopt -u huponexit huponexit 상태 확인 shopt huponexit 위 커맨드의 결과가 "on"이면 쉘 종료시 백그라운드 프로세스는 꺼지고, "off" 면 유지됩니다. 만약 huponexit가 on인 상태인 서버에서 프로세스를 유지하..
nohup 사용법 ( 터미널 로그아웃 후 프로세스 실행 유지 ) 대부분은 nohup의 목적을 알고 오셨으리라 생각해서 사용 방법부터 간단히 짚어 드린 뒤 자세한 설명을 하겠습니다. nohup [command] > [output file name] & [command]에는 보통 스크립트의 구동 명령이 들어 가겠죠. 만약 구동을 원하는 스크립트가 printLoop.sh 라면 아래와 같이 적으시면 됩니다. nohup sh printLoop.sh > printLoop.out & 위와 같은 코드에서는 printLoop.sh 가 실행되어 모니터로 출력되는 내용이 자동으로 printLoop.out 파일에 저장됩니다. 커맨드의 가장 끝 &는 백그라운드 실행을 의미합니다. 안 해도 상관없지만 nohup을 사용해야 하는 환경이라면 거의 필수적이라고 볼 수 있습니다. 출력이 중요하지 않..
vi로 코딩하기~~vol.3 ctags의 활용 이번엔 누구나 알듯한 ctags에 대해 다루도록 합니다..^^ ctags는 속도가 빠른 vi에게 날개를 붙여 주는 프로그램이죠..^^ ctags라는 날개를 얻음으로서 vi는 함수들 사이를 마구 마구 날아다닐 것입니다. vi의 장점은 숙련 되었을때 높은 에디트 능력과 속도를 제공한다는 데에 있습니다. 그 주요점은 검색&치환 입니다.windows를 사용할때 우린 검색 기능은 사용하지 않습니다. 드라이브 전체를 뒤지는 일이 있어도 윈도우의 내장 검색 기능은 무시해 버리죠...왜냐하면 한번 돌리면 퇴근해야 하니까요..ㅡㅡ;; 하지만 리눅스는 다릅니다. 현재 제 피씨의 하드 디스크는 320기가와 서브 백업용으로 1테라 입니다. 320기가는 거의 모든 영역을 사용하고 있구요. 하지만 리눅스의 검색명령을 내리고 키보..
vi로 코딩하기~~vol.2 vi의 친구들 플러그인 이번 편에선 미리 써 놓았던 데로 키 매핑입니다. 말이 키 매핑 이지...이건 사용자가 원하는 데로 하는 거니까....이번 편의 부제목 대로 플러그 인쪽에 가깝겠죠... 앞서 저는 vi의 유용한 키들을 설명하였습니다. 그런 키들은...혼자서 사용되는것 보다 여러키가 복합적인 효과를 주는게 더 많습니다. 첫번째 설명할 폴딩,폴딩해제 기능이 그런것이라고 볼수 있죠. 우선 프로젝트를 들어 가야 겠죠...이번엔 복수의 파일을 같이 열도록하겠습니다. 명령은 다음과 같은 형태죠. vi *.c src/*.c 복수의 파일을 여는 이유는 태그리스트와 버퍼익스플로러를 설명하기 위함입니다... 그럼 설명보다 스샷..ㅋㅋ 보시면 함수 하나가 이름만 남고 접혀져 있죠...이게 폴딩 기능 입니다....이건 기나긴 코드를 볼때 필..
vi로 코딩하기~~vol.1 누군가 요청했던 vi로 코딩하기 시리즈를 블로깅하려고 합니다..>,.< 이 블로그에서는 어떤 종류가 있는지 전부 나열하고 전부 설명하는 진부한 짓 안합니다...ㅡㅡ;; 그런건 위키 백과 뒤지세요......링크 첨부는 생략......왜냐하면 그정도 찾는건 인터넷 갓 시작한 사람도 할 줄 알고 모르는 사람이라면 배워야 하니까요..^____^ 여기선 오로지 제가 vi로 코딩하면서 필요했던 것들만 쓰겠습니다. 그러니 실무에 적합할 것이고 내용은 부족할 것입니다. 자신이 제가 소개한 것들을 충분히 쓴다고 생각 된다면 한번쯤 위키백과를 검색하시거나 제가 추천해둔 리눅스 프로그래밍 필수 유틸리티 책을 보세요~~~ 그럼 시작 합니다..^.~ 우선 설치~~~~ 이게 왜 필요하냐는 아우성이 초큼 들리는데..... 필요 합..