본문 바로가기

Linux/Linux

Linux에서 Daemon과 Cron은 무엇일까요?

반응형
SMALL

안녕하세요. 이번 시간엔 프로세스를 실행 / 관리 할 수 있는 데몬(Daemon)과 Cron에 대해서 알아보려 합니다.

 

데몬

우선 데몬이라 함은 항상 실행 중인 프로그램을 뜻합니다. 백그라운드에서 여러 가지 작업을 하고있는 산업역군이라 할 수 있겠죠.

 

마치 저희 집의 냉장고와 유사한 친구입니다. 냉장고의 경우엔 언제 사용할 지 모릅니다. 어머니께서 아침 일찍 사용할 수도 있고, 아버지께서 과일을 드시려고 저녁에 사용하실 수도 있으며, 제가 지금 글을 쓰는 2020년 3월 15일 오전 12시 51분에도 사용할 수 있습니다.

 

즉, 냉장고는 사시사철 켜져있어야 합니다. 이해가 되시나요?

 

다시 그러면 SW 측면으로 따져보도록 합시다. 항상 켜져있어야 할 것이 무엇일까요?

 

바로 서버가 될 수 있겠죠.

 

유튜브 서버가 한 번 다운이 됐던 적이 있는데, 그 때 많은 사람들이 엄청 불편을 겪었습니다. 유튜브를 달고 사는 저로선 인생의 재미를 잃게 되고, 과호흡까지 올 뻔 했습니다.

정말 세상에서 일어나면 안되는 일 중 하나

이처럼 서버란 존재는 항상 켜져있어야 하며, 이런 프로그램을 데몬이라고 명명할 수 있습니다.

 

실제로 리눅스에서 손쉽게 이를 관리하는 디렉토리로 접근이 가능합니다.

cd /etc/init.d/

여기로 들어가시면 데몬 프로그램이 위치한 디렉토리입니다. 그렇기에 여러분이 Apache라는 웹 서버를 설치를 한다면, 이 디렉토리에 위치되게 됩니다.


크 제가 중학생 때 프리메이플 서버를 직접 구동을 해보려고 아파치 서버를 만들어서 구동을 했었더랬죠. 그 때 당시에 경험치 500배 드롭율 200배로 설정을 한 다음에 사람들에게 홍보도 하고 대략 40명이 넘는 사람이 제 프리메이플 서버에 접근을 해주셔서 되게 게임을 즐겼습니다. 그 떄 당시 해적이라는 캐릭터가 처음 나왔었는데, 제가 서버 최초로 드래곤 스트라이크 스킬을 쓰게 되면서 많은 이들이 축하도 해주고 그랬습니다. 뭐 물론 중간에 다른 프리메이플 서버 사람들이 저희 서버에 쳐들어와서 서버도 폭파시키고 카페에 도배란 도배를 다 해버리는 바람에 결국 문을 닫게 되었지만, 제가 프로그래밍을 처음 시작했던 순간이 이 순간이 아니었나 싶네요. 그리고 그 다음 흥미를 가진 시간은 삼성 청년 소프트웨어 SSAFY(싸피)라는 소프트웨어 교육 집단에 들어가게 되면서......


여기에 위치한 프로그램은 우리가 일반적으로 알고있는 방식으로는 켜고 끌 수가 없기 때문에 다른 명령어가 필요합니다.

sudo service [프로그램 이름] start # 시작

ps aux | grep [프로그램 이름] # 시작됐는지 확인하기

sudo service [프로그램 이름] stop # 끝내기

이렇게 데몬 프로그램을 켜고 끌 수가 있습니다. 간단하쥬?


그럼 이제 Cron에 대해서 알아봅시다.

 

Cron은 정기적으로 프로그램을 실행시켜 주는 소프트웨어입니다. 데이터를 정기적으로 백업한다던지, 전송하던지, 시간을 수정해야 한다던지, 이런 경우에 Cron을 사용하시면 됩니다.

 

아래의 명령어로 실행이 가능합니다.

crontab -e

만약 이를 처음 실행하셨다면, 아래와 같은 질문이 뜹니다. 어떤 에디터로 실행을 하겠냐는건데, 편하신거 하시면 됩니다.

저는 nano(1번)로 했어요

그러고 들어가보면 짠 이렇게 설명서가 뜹니다.

음.. 제가 영어를 못해요. 그래서 구글에서 가져왔습니다.

crontab 사용법

마지막 줄 예제에서 보시면, 숫자 보이시죠? 사진에 맞는 위치에 알맞은 숫자를 넣으시면 됩니다. 그 뒤엔 하고 싶은 명령어를 넣으시면 됩니다.

$ crontab -e

# 1분마다 ls의 결과를 result.txt에 append를 하겠습니다. (crontab -e를 켜고 하셔야합니다)
*/1 * * * * ls >> result.txt 2> error.txt # 이 명령어를 추가해보았습니다.

$ crontab -l # 이를 실행하면 수정한 crontab 파일을 확인할 수 있습니다.

추가가 잘 되네요

이렇게 저흰 정기적으로 명령을 실행하는 방법을 배워보았습니다.


이상 Linux에서 Daemon과 Cron은 무엇일까요? 였습니다. ^_^

반응형
LIST