반응형

Linux 9

linux c 에서 Daemon 올릴때, shell 쓰자.

말 그대로.보통 linux 에서 console command 를 실행하기 위해서 ( = 프로그램에서 다른 프로그램 실행 ) 사용하는게fork() + exec() 계열 함수 혹은fork() + system() 함수다. 근데, 나는 무슨 정신으로 이렇게 했는지 모르겠는데, 예전에 짜 놓은 코드를 보니 fork() 도 안 쓰고, popen() 썼더라. daemon 을 하나 올릴 일이 있어서 예전 작업 코드를 보다가"어? 이거 왜 popen() 썼지?" 라고 생각하고 exec() 나 system() 으로 고치려고... -_-;;; 작업해 봤는데, 왜 popen() 썼는지 알겠더라. exec() 계열 함수나 system() 은 사용하기는 편한데, 가장 큰 단점이, 프로그램 kill 이 잘 안된다는 거다. 설명하기..

프로그램 2015.06.17

linux 에서, shell ( console ) 의 결과값을 재처리 하려면 exec 계열 함수 대신 popen() 을 이용

말 그대로다. 프로그램에서, 단순히 shell ( command ) 의 명령어를 실행만 시키려면 exec 계열 함수나 system() 으로 충분하지만, 명령어 실행 후 값을 가져와 재처리를 하려면, popen() 을 사용해야 한다. 예를 들어 ls 를 실행만 시키려면 execl() 로 충분한데,ls 를 실행해서 파일 목록 중 특정 목록이 있으면 삭제하는 기능을 C로 만들려면 , popen() 을 써야 한다는 거지. 예제는 인터넷 찾아보면 많으니까, 찾아볼것. 끝.

프로그램 2015.01.23

crontab 이 정상 실행 안 될 때.

linux 에서 정기적인 작업 실행을 위한 corn.cron 의 사용법은 인터넷 검색 해서 알아보고.... 나는 크론 안 되는 경우를 좀 적겠다. daemon 을 하나 만들어서 정기적으로 실행시키려고 cron 에 등록했는데, 아무리 해도 안되더라. 아래와 같은 내용을 확인해 보아야 한다. 1. cron 은 1분 이하의 정기적 실행은 불가능.분해능이 1분이다. 2. cron을 매 분, 매 시간 실행시키는 것과, 매 시각 1분, 매일 1시에만 실행시키는 것은 다르다. 예를 들어, 1 * * * * /home/foo.sh 는 매 분마다 foo.sh 를 실행시키는 게 아니고, 매 1 분마다 foo.sh 를 실행시킨다는 뜻으로, 한 시간에 cron 이 60번 실행된다는 뜻이 아니라, 한시간에 1회만, 매 시각 0..

프로그램 2015.01.21

linux 가 아닌, xwindow 의 시작 프로그램 등록.

제목대로 그러하다. 원래는 라즈비안( 혹은 바나나파이 ) 에서 x window 실행될 때 자동 실행되는 걸 하려고 했는데... 누가 이미 정리한 게 있다. http://lovedove.tistory.com/94 ( 그냥 바로 내용 봐도 됨 ) /etc/rc.local 에 등록해서 안 되는 까닭이... 아마도 실행되는 타이밍의 문제가 아닐까 한다.rc.local 이 실행되는 타이밍에 xwindow 가 아직 실행되지 않았다던가... 그런 문제일듯? 어쨌던, 별도의 배치 파일이 있다고 하니, 그거 쓰면 됨. /etc/xdg/lxsession/LXDE/autostart 인데... 아마 다른 xwindow 에도 비슷한 이름으로 있겠지. find 따위로 찾아보면 되지 않을까 싶다. ( 찾아보지는 않았다. ) 끝.

프로그램 2014.09.23

Linux 에서 C 컴파일용 mysql library + header file 구하기.

제목 그대로임. linux 에서 mysql 용 코드를 작성해야 했는데, mysql 을 설치하니 이것이..... 실행 코드만 설치됨. 컴파일용 코드는 따로 설치해야 하는 거다.옆사람이 하다 안된다는 걸 넘겨받아 한 거라, 어떠한 설치 조합을 해야 컴파일이 가능한 버전을 설치할 수 있는지 몰랐는 터라, VM을 이용해서 패키징 설치 후 컴파일을 여러 조합의 수로 확인해 보았다. ( 설치 + complie + Table R/W 까지 확인) 1. 리눅스 설치.2. apt-get install mysql-client mysql-server 3. apt-get install libmysql++-dev4. 이하의 C 코드로 mysql 라이브러리 설치 여부를 확인. #include #include int main(int..

프로그램/mysql 2013.08.05

mysql 외부 접속이 안될때.

아아....이걸 하려고 세시간 ~ 여섯시간 정도를 쓴 거 같아.결론은 어처구니 없는 게 원인이었다. 혹시 나같은 사람이 또 있을까 싶어, 증상과 해결책을 기록한다.아래 글에서, domainname.co.kr 은 서버의 도메인 네임을 의미한다.123.456.789.0 은 서버의 ip 를 의미한다.987.654.321.0 은 외부 단말의 ip 를 의미한다. ---------------------------------------------------------- 환경1 : LAMP ( Linux + Apache + MySql + PHP )환경2 : 딱히 설정같은거 바꾼 거 없고, 최초 설치 그대로 손 안댄 상태에서 외부 접속을 시도. 현상 : 외부 접속 안됨. 로컬에서는 mysql 이 잘 붙는데, 외부에서 못..

프로그램/mysql 2013.07.24
반응형