파일시스템 계층구조 표준(https://yiunsr.tistory.com/756) 에 따라 실행중인 파일의 .sock파일(port 가 아닌 파일로 stream 을 주고 받을 때 생성되는 파일) 이나 .pid파일(Process identifier 로 프로세스가 실행중일 때 중복실행을 방지하고 위해 생성하는 파일, 계속 상주하는 프로그램의 경우 특정 경로에 자신의 pid 파일이 존재하고 있으면 이미 실행중임을 인식해서 자동으로 종료되는 방식으로 구현되오 있다.)의 경우 보통 /var/run 내 디렉토리를 만들어 파일을 생성한다. 
 전에 gunicorn 으로 flask 배포(https://yiunsr.tistory.com/888) 에서 /var/run/ 으로 sock 파일이나 pid 를 파일을 설정했던 것도 이런 이유이다. 그런데 이 경로 /var/run 안에 디렉토리를 만들면 재부팅시 이 파일 뿐만 아니라 디렉토리도 삭제된다. 이것은 아마 종료시 run 중이 아니기 때문에 시스템에서 알아서 해당 파일 전부를 삭제하는 것으로 추정된다.

 오늘 이 때문에 디렉토리가 없어 systemd 가 동작하지 않는 현상을 경험했다. 내가 다른 /var/run 과 섞이지 않게 하기 위해 따로 디렉토리를 만들었는데, 재부팅 해니 이 디렉토리까지 사라져서 systemd 로 동작하는 스크립트가 pid, sock 파일을 만들지 못해서 동작하지 않는 문제가 있었다. 

 찾아보니 systemd 설정시

[Service]
User=www-data
Group=www-data
RuntimeDirectory=uwsgi
RuntimeDirectoryMode=0777

같은 식으로 하면  /run/var/uwsgi 디렉토리가 생성되고 설정한 대로 group 과 user 가 생성되고 RuntimeDirectoryMode 대로 퍼미션도 설정되는 것을 확인 했다.

systemd 는 뭔가 공부할 것이 너무 많은 것 같다. 언젠가 정리가 필요할 것 같다. 

  생각보다는 쉬었다. 그동안 이게 굳이 필요하냐는 생각이 있었는데, 있으면 편할 것 같긴하다. 굳이 필요하냐는 생각을 할때는 python type hint 을 그다지 이용하지 않았을 때이고 jsx문법을 접하면서 typescript 를 접할 때이다.   그러다보니 스크립트 언어에 strong type 이 필요하냐는 의문이 있었다. 그런데 배워보니 그렇게 까지 어려운 것도 아닌 것 같다. 그리고 jsx 문법에서 얻은 거부감이 굳이 typescript 에 까지 가질 필요가 없다는 생각이 들었다. (jsx 문법에 대한 거부감은 아마 굳이 html 으로 충분히 표현가능한 것을 굳이 이런 것을 도입해야 하느냐는 생각 때문인 것 같다. 내 기준에서는 html 은 프로그래밍 언어이고, 그것도 꽤 좋은 프로그래밍 언어라는 생각이 있다. ) 
 다만 브라우저에서 바로typescropt 를 지원하지 않다보니 환경 설정의 불편함은 존재하는 것 같다. 예전에 IE 같은 브라우저는 vbscript 를 지원했었는데, 그런 것 처럼 다른 언어들도 지원하면 좋을 것 같다. 

 난, 그동안 stackoverflow 만 있으면 개발이 되는줄 알고있었다. 그런데, 이번에 카카오 데이터 센터 화재 사건 때문에 내가 꽤 많이 티스토리 사이트들에 의존적인지 알게 되었다. 영어로된 개발정보들은 stackoverflow 에서 찾을 수 있다. 그러나 한국어로 된 개발정보는 꽤 많이 티스토리가 검색됨을 알게 되었다. 아무래도 빠르게 내용을 확인하기 위해서 내게는 영어보다는 한국어가 매우 편하다. 
 오늘 vue 와 여러 javascript 정보를 검색하면서 여러번 티스토리가 검색되었다. 그런데 아직 카카오 데이터 센터 화재에서 티스토리가 복구가 되지 않아 내용을 볼 수 없었다. 꽤 많은 한국어 자료들이 facebook 에도 있을 것 같긴한데, 검색이 되지 않으니 무용지물이다. 

 오늘 티스토리 개발 블로그들의 도움을 많이 받고 있다는 것을 느낀 하루였다.