[bash: stat] 현재 파일이 전송되고 있는 중인지 판단하기 - 2
By 반달가면 | 2018년 7월 16일 |
예전에 파일이 마지막으로 수정된 시간이 언제인지를 확인해서 파일이 현재 전송중인지 판단하는 방법을 정리해 두었는데, 한가지 방법을 더 정리해 두기로. 두번째 방법은 일정 시간 동안 파일 크기가 변했는지 그대로인지를 보고 판단하는 것이다. 현재 파일 크기가 얼마인지 확인하고 이후 일정 시간, 예를 들어 10초 후에 파일 크기를 다시 확인해서 크기가 같은지를 비교한다. 만약 파일이 전송중이라면 10초후의 파일 크기는 좀 더 늘어나 있을 것이다. 파일 크기만 출력하려면 stat 명령에서 아래와 같이 하면 되겠다. -c 옵션으로 출력 형식을 지정해 주는데, 파일 크기는 %s이다. # my_file.txt 파일의 크기 확인 stat -c %s my_file.txt 시간차 기준을 10초로 하여
[Linux][Kernel] 인터럽트 - request_threaded_irq 기초
By Guillermo Austin Kim | 2017년 12월 9일 |
개요 하드웨어 관점에서 인터럽트는 인터럽트 콘트롤러에 의해 인가되는 전기신호 인데요. 이 신호는 인터럽트 컨트롤러 입력 핀으로 전달됩니다. 각각 보드마다 인터럽트 컨트롤러는 연결된 여러 개의 인터럽트 배선을 하나의 배선에 묶어서 프로세서에 전달해준다. 인터럽트를 받으면 인터럽트 콘트롤러는 프로세서에 신호를 보낸다. 신호를 감지하면 프로세서는 인터럽트를 처리하기 위해 현재 실행하던 일을 잠시 중단한다. 그다음 프로세서는 커널에 인터럽트가 일어났다는 것을 알리고, 커널은 상황에 맞게 인터럽트를 처리한다. 위에서 설명한 인터럽트가 처리되는 과정은 어느 플렛폼이나 거의 유사하다. 주의해야 할 점 인터럽트가 올라오면 인터럽트 서비스 루틴(ISR)이 호출이 된다. 이 때 프로세서는 기존에 하던 일을 잠시
리눅스 systemd 타겟(target)과 init 런레벨(runlevel)
By 반달가면 | 2019년 5월 3일 |
최근에 접하는 리눅스 배포판은 시스템/서비스 관리자로 systemd가 탑재되어 있다. 예전에 사용하던 런레벨(runlevel) 대신 타겟(target)이라는 용어를 사용하고, 대응 관계는 아래와 같다. runlevel 0 정지(시스템 종료) - poweroff.target runlevel 1 단일 사용자(single user) - rescue.target runlevel 2,3,4 다중 사용자(multiuser) - multiuser.target runlevel 5 다중 사용자 + GUI - graphical.target runlevel 6 재기동 - reboot.target 실행레벨 변경은 init 명령을 사용하는데, systemd의 경우 systemctl의 isolate 옵션을 사용한다
[라즈베리파이][리눅스커널] 인터럽트 소개(0)
By Guillermo Austin Kim | 2018년 3월 2일 |
인터럽트란인터럽트란 단어가 여러분들은 생소하신가요? 낯설게 들리는 분도 있고 귀에 익은 분도 있을 텐데요. 평소 인터럽트를 뭐라고 하죠? 일상생활에서 인터럽트는 보통 갑자기 생긴 일이나 하던 일을 멈춘다는 의미죠. 예를 들면 책을 읽다가 전화가 와서 읽던 책을 덮어 놓고 전화를 받는 상황이죠. 임베디드 시스템 관점으로 인터럽트는 뭘 의미하죠? 우선 하드웨어 관점으로는 하드웨어 변화를 감지해서 외부 입력으로 전달되는 전기 신호로 볼 수 있습니다. 예를 들면 키보드를 손으로 입력하면 하드웨어적으로 키보드 하드웨어의 변화를 감지하고 신호를 유발하죠. 보통 하드웨어 개발자들은 종종 오실로스코프란 장비로 인터럽트가 제대로 올라오는지 측정을 하죠. 인터럽트 신호를 측정하면 아래와 같은 파형을 볼 수 있는데요. 참고