콘텐츠로 건너뛰기

임베디드

[리눅스] 부팅시 프로그램 자동 실행하는 방법!!

리눅스 부팅시 프로그램이나 스크립트 자동으로 실행하는 방법입니다

– /etc/init.d/ 폴더에 부팅시 실행할 스크립트를 작성합니다
 : ex) sinwho.sh

– 만든 스크립트 파일 권한을 변경합니다
 : chmod 777 /etc/init.d/sinwho.sh

– 만든 스크립트 파일을 등록합니다
 : update-rc.d [실행 할 스크립트 파일] defaults
 : ex) update-rc.d sinwho.sh defaults
 : defaults는 runlevel 3,5를 의미합니다 /etc/rc?.d/ 폴더에 가시면 등록한 스크립파일을 볼수 있을겁니다(?는 숫자입니다)

이후 재부팅 후 확인 하시면 됩니다

– 등록한 스크립트(프로그램) 삭제 방법
 : update-rc.d sinwho.sh remove

[리눅스] 내부 네트워크 WOL 간단히 사용하기!!

집에 간단한 홈서버(리눅스)를 꾸며놨는데

내부 네트워크로 간단히 같은 네트워크에 연결되어 있는 PC를 WOL 제어할때 편한게 있어서 소개합니다

일단

sudo apt-get install etherwake 

를 설치 후

wakeonlan MAC-ADDRESS

로 실행하시면 됩니다

만약 맥주소가 FC:00:00:00:00:00 이라면

wakeonlan FC:00:00:00:00:00 

이렇게 하는것만으로 간단히 내부 네트워크 WOL을 사용할수 있습니다

[리눅스] C언어 타이머(Timer) 사용법 및 예제!!

리눅스 C언어 타이머 사용법입니다

아래의 createTimer 함수를 호출만 하면 됩니다

간단히 주석도 달았으니 참고 하시면 될듯합니다

#include <unistd.h>
#include <time.h>
#include <signal.h>
#include <stdio.h>
 
// 타이머 주기에 따라 호출될 타이머
void timer()
{
    printf("timer\n");
}
 
int createTimer( timer_t *timerID, int sec, int msec )  
{  
    struct sigevent         te;  
    struct itimerspec       its;  
    struct sigaction        sa;  
    int                     sigNo = SIGRTMIN;  
   
    /* Set up signal handler. */  
    sa.sa_flags = SA_SIGINFO;  
    sa.sa_sigaction = timer;     // 타이머 호출시 호출할 함수 
    sigemptyset(&sa.sa_mask);  
  
    if (sigaction(sigNo, &sa, NULL) == -1)  
    {  
        printf("sigaction error\n");
        return -1;  
    }  
   
    /* Set and enable alarm */  
    te.sigev_notify = SIGEV_SIGNAL;  
    te.sigev_signo = sigNo;  
    te.sigev_value.sival_ptr = timerID;  
    timer_create(CLOCK_REALTIME, &te, timerID);  
   
    its.it_interval.tv_sec = sec;
    its.it_interval.tv_nsec = msec * 1000000;  
    its.it_value.tv_sec = sec;
    
    its.it_value.tv_nsec = msec * 1000000;
    timer_settime(*timerID, 0, &its, NULL);  
   
    return 0;  
}
 
int main()
{
    timer_t timerID;
    
    // 타이머를 만든다
    // 매개변수 1 : 타이머 변수
    // 매개변수 2 : second
    // 매개변수 3 : ms
    createTimer(&timerID,5, 0);
    
    while(1)
    {
        
    }
    
}

실행화면입니다

5초 주기로 타이머가 실행됩니다

컴파일시 -lrt 옵션을 주어야 에러 없이 빌드가 됩니다