Runqueue(런큐) Timestamp(실행 시간) 확인
By Guillermo Austin Kim | 2017년 12월 24일 |
보통 커널 크래시나 와치독 리셋으로 시스템이 다운된 경우 세밀하게 디버깅해야 할 때가 있어요.그런데 가끔 각 프로세스가 마지막에 어떤 순서로 실행이 됐는지 확인하고 싶을 경우가 가끔 있거든요.이 순서가 가끔 정말 중요한 순간이 가끔 있어요. 아래는 런큐에서 돌고 있는 프로세스 목록이거든요. 그럼 각각 프로세스가 어떤 순서로 실행이 되었는지 알 수 있을까요?crash64> runq -m CPU 0: [0 07:36:22.901] PID: 585 TASK: ffffffc071eb8b80 COMMAND: "android.hardwar" CPU 1: [0 07:36:22.901] PID: 726 TASK: ffffffc0f6e3f300 COMMAND: "DispSync" CPU 2: [0
[라즈베리파이] 프로세스: 태스크 디스크립터(프로세스 식별/프로세스 상태)
By Guillermo Austin Kim | 2019년 1월 27일 |
프로세스를 식별하는 멤버들을 살펴 보겠습니다. char comm[TASK_COMM_LEN]; comm은 TASK_COMM_LEN 크기 배열이며 프로세스 이름을 저장합니다. "ps -ely"란 명령어를 입력하면 다음과 같이 systemd, kthreadd 그리고 kworker/0:0H가 보입니다.root@raspberrypi:/home/pi # ps -ely1 S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD2 S 0 1 0 0 80 0 5964 7007 SyS_ep ? 00:00:02 systemd3 S 0 2 0 0 80 0 0 0 kt
[디버깅 로그] inspectdb 를 이용한 Django 모델 필드 인식 오류 해결
By 양파개발자 SW의 블로그입니다^^ | 2016년 12월 27일 |
가끔, Database 를 만든뒤 이를 Django 모델로 선언하고 ORM 문법에 따라 프로그래밍을 하다보면 model object 에서 해당 필드가 마치 없는것처럼 에러를 내뱉는 경우가 있다. model object 의 필드 참조에 대하여 AttributeError 혹은 KeyError 가 발생할때 이다. 이럴때 사용하는 방법은, inspectdb 명령어를 이용하여 필드 선언방식에 도움을 받는것 !!! inspectdb 가 뭔짓을 하는 명령어 인지는 여기 를 가면 확인할 수 있다간단히 말해, 기존 테이블 필드 정보를 자동으로 Django model 파일로 생성해주는 기능!! 모델을 직접 선언하기 귀찮을때 사용하면 딱인데,, 문제가 하나 있다.필드의 모든 세부 사항들 까지 다 적용해주진 않는 다는
tmux - 리눅스 터미널창 분할
By 반달가면 | 2021년 3월 25일 |
tmux는 리눅스 터미널창을 여러개의 화면(pane)으로 분할하여 하나의 터미널창에서 여러 작업을 동시에 보면서 진행할 수 있게 해 준다. 터미널 다중화기(terminal multiplexer)를 줄여서 tmux이다. 특히 원격에서 ssh 접속하여 작업할 때 서버쪽에 tmux가 설치되어 있으면 대단히 편리하다. 우선 tmux 패키지를 설치해 주자. 터미널창에서 아래와 같이 작업한다. 데비안/우분투 계열 배포판 기준이다. # S/W 저장소 정보 갱신 sudo apt-get update # tmux 설치 sudo apt-get install tmux # 도움말 확인 man tmux # 실행 (새로운 세션 생성) tmux tmux 세션(session)이 생성되면 터미널창 아