본문 바로가기

반응형

Linux

(7)
[Linux] 데몬(Daemon) 프로세스 만들기 데몬(daemon)이란? '데몬(daemon)' 프로세스는 리눅스 운영 체제서 사용하는 프로세스의 일종으로써, 시스템 시작이 시작할 때 그 생명을 시작하여, 우리가 알지 못하는 백그라운드에서 자신의 할 일을 묵묵히 행하다 시스템과 함께 그 생명을 다한다(대충 컴퓨터 켜면 자동으로 실행해서 끌 때까지 종료되지 않는다는 뜻). 이 페이지에서는 데몬의 특징을 살펴 보고 간단한 데몬 프로세스를 만들어 보도록 하겠다. 참고로 윈도우에서는 '서비스'라는 데몬 프로세스와 비슷한 역할을 하는 것이 있다. 윈도우 '서비스'에 대한 설명은 본 포스트 맨 아래 부록으로 추가 되어있다. 데몬(daemon) 프로세스의 특징 일반적으로 Daemon을 단순히 시스템 백그라운드에서 돌아가고 있는 프로세스라 생각하기 쉽다. 아래의 화..
리눅스 버전 확인 운영체제 버전 확인 cat /etc/issue $ cat /etc/issue Ubuntu 20.04.2 LTS \n \l 운영체제의 종류와 버전을 확인 커널 버전 확인 cat /proc/version $ cat /proc/version Linux version 4.4.0-19041-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #488-Microsoft Mon Sep 01 13:43:00 PST 2020 커널의 버전, 커널과 함께 컴파일한 컴파일러와 컴파일러 버전을 확인 커널 버전 확인 uname -a $ uname -a Linux DESKTOP-BJJ6MAT 4.4.0-19041-Microsoft #488-Microsoft Mon Sep..
[Linux] 좀비 프로세스 죽이기 좀비 프로세스란? 자식 프로세스가 exit 시스템 콜을 호출하여 종료 되면 프로세스에 관련된 모든 리소스가 해제되어 다른 프로세스에서 사용 할 있게 되지만, 자식 프로세스가 종료 되더라도 부모 프로세스에서 자식 프로세스의 상태를 알고 싶을 수도 있기 때문에 커널은 자식 프로세스가 종료 되더라도 프로세스 아이디, 종료 상태 등의 최소한의 정보를 프로세스 테이블에 유지 한다. 이미 프로세스의 리소스는 모두 회수 되었지만 시스템의 프로세스 테이블에 남아 있는 프로세스를 "defunct" 또는 "dead" 상태 프로세스라고 하며 일반적으로 "좀비" 프로세스라고 더 잘 알려져 있다. 이 좀비 프로세스를 없애기 위해서는 부모 프로세스가 죽거나, 부모 프로세스에서 wait 또는 waitpid 시스템 콜을 호출하면 된..
linux command check cpu$ cat /proc/cpuinfo$ dmesg | grep cpu check cpu architecture(x86, x64, x86_64)$ arch check 'RAM' memory size :"free" to see RAM information in KB."free -m" to see RAM information in MB"free -g" to see RAM information in GB $ cat /proc/meminfo check 'Disk' storge"df -h" to see disk partition and storage information"fdisk -l" to see hard disk information"du -sk" to see usage of current di..
shell 프롬프트 텍스트 변경 여러 리눅스 서버를 관리하다 보면 현재 내가 어느 서버에 접속해 있는지 헷깔릴때가 있다. 터미널에서 제공하는 여러가지 도움을 주는 도구들이 있지만 개인적 경험으로 보았을때 쉘에서 현재 접속중인 서버의 이름을 보여주는 것이 가장 도움이 되었다. 하지만 쉘프롬프트를 꾸미는 셋팅이 자주 있는 일이 아니라 자꾸 방법을 까먹어 여기에 기록 해놓도록 한다.(언젠가 이 블로그에 적은 기억이 있는것 같은데 찾을 수가 없어 중복 같지만 다시 한번 더 작성한다) user_id@ip-172-31-15-60:~$ vi ~/.bashrc # .bashrc PS1="\u@:\w\$ " 위에서 : \u 는 현재 사용자의 이름을 나타낸다 @ 는 그냥 @이다 은 해당 서버를 구분하기 위해 넣어주는 이름이다 \w 는 현재 디렉토리를 나..
Ubuntu core dump 셋팅 limits.conf 파일 수정 $ sudo vi /etc/security/limits.conf /etc/security/limits.conf 파일에 아래 두 줄을 추가 kukuta soft core unlimited kukuta hard core unlimited 위에서 kukuta는 계정명이다. 각자가 사용하는 계정을 적어 주면 된다. 위와 같이하면 프로세스가 예기치 않게 죽을시 코어 덤프를 남기고 죽게 된다. 코어 덤프 pattern 수정 /etc/sysctl.conf 파일에 아래 내용을 등록해 준다. kernel.core_pattern = core.%e.%p.%t 처음은 단순 core라고만 적혀 있다. 아래를 참고하여 각자가 원하는 형태로 바꾸도록 한다. %p: pid %: '%' is dropp..
우분투(Ubuntu) 패키지 만들기 리눅스(ubuntu)에서 서버 개발을 시작하면서 가장 귀찮은 것중에 하나는 개발환경 셋팅이었다. 서버 프레임워크에 boost, curl, json, mysql을 사용하고 있어서 새로 서버를 셋팅하거나 개발환경이 필요한 경우 매번 위 라이브러리들을 설치하는 작업을 해야 했고, 이게 자주 있는 일이 아니다 보니 할때 마다 뭘 설치해야 할지 까먹어 매번 새로운 작업 처럼 느껴졌다(그리고 빌드 과정 또한 복잡했다). 그래서 이 일련의 반복되는 작업들을 쉽게 할수 있는 방법이 없을까 찾아 보던 중 '패키징'이라는 것을 알게 되었고 필요한 라이브러리들 미리 빌드하여 바이너리 형태의 패키지로 묶어 한번에 설치할 수 있도록 하니, 개발환경을 새로 셋팅할 때 마다 몇 시간씩 들던 노력이 몇 분으로 줄어 들었다. 자, 이..

반응형