분명 deploy.sh에서 구동 중인 애플리케이션이 있을 경우 kill하도록 했는데 감지하지 못하는 현상이 나타났다. 8080 포트 사용 여부 확인하는 코드 netstat -ntlp | grep :8080 확인해 보니 8080 포트는 사용중이어서(구동 중인 애플리케이션이 있어서) 8080 사용중인 오류가 뜨는 것이었다. kill -15 pid로 kill한 후 deploy.sh를 실행하니 잘 실행되어 구동 중인 애플리케이션을 감지하지 못해서 생기는 오류일 것이라고 생각했다. 원래 deploy.sh 코드 #!/bin/bash REPOSITORY=/home/ec2-user/app/step2 PROJECT_NAME=name echo "> Build 파일 복사" cp $REPOSITORY/zip/*.jar $RE..
travis는 git에 저장된 파일로 gradle을 실행하는데 이때 RDS.properties는 보안상의 문제로 ec2 서버와 로컬에만 저장해둬서 jdbc 연결 설정이 안되는 오류가 났다. 이를 해결하기 위해 travis는 h2 DB를 사용하게 했고, application-h2.properties를 만들어 기본 properties와 분리해줬다. ec2에서 build하는 deploy.sh에서는 기본 properties와 RDS properties만을 사용하도록 해서 성공했다.
organization의 repo 프로젝트를 travis로 배포하면서 생긴 우여곡절들이다. 1. organization 연결 처음에 organization을 연결하는데 git에서 설정을 해주고 난 후, 조금만 기다리라더니 거의 하루가 걸렸다.. 3시간이 지나도 연동이 되지 않아서 오류가 난건가 싶었지만 그냥 시간이 오래 걸린듯 2. 프로젝트 구조 repo의 최상단에 .travis.yml 파일이 존재해야 하고, 내 프로젝트는 레포(.travis.yml 파일 위치)->server(gradle 위치) 구조여서 이동해 줬다. 3. gradle의 권한 gradle의 실행 권한이 없어서 추가해줬다. 4. 프로젝트 자체 버그 프로젝트의 자잘한 버그들 때문에 run이 안돼서 고쳤다. 5. travis rds 접근 불가..
multipel reader, single writer일 경우 사용 록 정보는 fork 호출에 의해 계승되지 않음 fcntl 호출의 파일 포인터를 변경시키지 않음 한 프로세스에 속한 모든 록은 그 프로세스 죽을 때 자동 제거됨 읽기 록 : 쓰기만 제한 다른 프로세스들이 쓰기 록 적용 못하게 함, 여러 프로세스들이 같은 구역에 동시 읽기 록 가능 쓰기 록 : 읽기, 쓰기 다 제한하고 혼자 쓰기만 가능 다른 프로세스들이 그 구역에 읽거나 쓰기 록 할 수 없도록 함 파일의 한 구역에는 한 순간에 하나의 쓰기 록만이 존재 가능 #include int fcntl(int fildes, int cmd, struct flock *ldata); int main(){ struct flock my_lock; my_lock...
부모 - 자식 간이 아닌 독립적인 프로세스들은 서로의 존재 모름 -> 이름 있는 파이프 사용해야 함 특수 파일의 한 종류, FIFO라고 함 FIFO로 사용할 특수 파일을 먼저 생성해야 함 (명령이나 함수로) 명령으로 FIFO 파일 생성 - mknod, mkfifo mknod 명령 FIFO 파일 뿐 아니라 특수 파일도 생성하는 명령 mknod 파일명 p $mknod HAN_FIFO p $ls -F // FIFO file 목록 HAN_FIFO| //|이 FIFO 표시임 mkfifo 명령 FIFO 파일만 생성하는 명령 /usr/bin/mkfifo [-m mode] path 또는 mkfifo [-m mode] path $mkfifo -m 0644 BIT_FIFO 함수로 FIFO 파일 생성 - mknod, mkf..