NodeJs/Server 만들기/

안드로이드 기기를 Linux 머신으로 (6) 기타 설정

2020. 10. 28.

편의성 설정

터미널을 껏다 켯을 때 ssh가 자동으로 실행되게 만들고싶다.

서버에 문제가 있을 때 간단하게 재시작하고싶다.

등등 편의성을 조금만 추가해보자.

 

재시동시 ssh자동 실행

~/files/home 디렉토리에서 .bashrc 파일생성

처음에는 빈파일상태일것이다.

ssh 실행 명령어인 sshd를 입력해주고 저장.

이제 터미널 재가동시 ssh가 기본으로 켜진다.

 

서버 재시작 설정

서버 재시작은 쉘 스크립트를 사용해서 진행해야한다.

서버 프로젝트 폴더에서

package.json 파일을 열어 다음과 같이 바꿔준다.

 

{
  "name": "test-node",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",    
    "start": "node index.js &",
    "restart": "bash restart.sh"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

scripts object를 수정해주었다.

 

npm restart

명령을 주었을  때 restart.sh 파일을 실행하는것이다.

 

restart.sh 작성

restart.sh 파일은 현재 실행중인 process중에서 node관련을 모두 kill 하고 서버를 재가동 해주도록 짜놨다.

소스는 다음과 같다.

#!/bin/bash
echo -e "\nThe following node process were found : \n"
ps aux | grep "node" | grep -v grep
nodepids=$(ps aux | grep "node" | grep -v grep | cut -c10-15 )

echo -e "\nOK, so we will stop these process/es now...\n"

for nodepid in ${nodepids[@]}
do
echo "stopping PID : "$nodepid
kill -9 $nodepid
done
echo -e "\nDone!"
echo -e "\nRestart...\n"
npm start &