들어가며
이번에는 저번에 설치했던 WSL에 node.js를 설치하고 간단한 서버 구동 및 .sh파일을 다뤄볼거에요.
서버 구조 만들기
이 포스팅은 WSL과 리눅스 사용에 목적을 두고 있기에 node만 설치해서 아주 간단하게 서버를 설치해볼거에요.
디렉토리 위치는 home이나 opt디렉토리 안에 nodeServer처럼 저희가 사용할 디렉토리를 만들어주세요

전 /home/nodeServer로 생성해줬습니다
우선 총 디렉토리 구조는 /home/nodeServer에 있다고 기준하면
- | - app.js
- | - bin
| - start.sh
| - stop.sh
| - error.log
| - monitor.sh //추후 프로세스 감시 스크립트
이렇게 될 것 같습니다!
작업도중 자꾸 권한이 없어서 생성된 사용자에게 임시로 sudo 권한 부여하고 작업하겠습니다.

그래도 sudo권한을 치기 귀찮다?
sudo chown -R 사용자:사용자그룹 /home
로 디렉토리 소유주를 변경해주시면 모든 작업에 용이하실것 같습니당
touch app.js //app.js 생성
mkdir bin //bin 폴더 생성
cd ./bin/
touch start.sh //start.sh생성
touch stop.sh //stop.sh생성
touch error.log //error.log생성
touch monitor.sh //monitor.sh생성
서버 설치
1. node 설치
//apt 패키지 툴 재동기화
sudo apt update
//nodejs/npm 설치
sudo apt install nodejs npm
//설치 확인
nodejs -v
npm -v
//node express 설치
npm install express
APTAdvancedPackagingTool: 소프트웨어 패키지 관리 도구
이전에 만들었던 app.js에 간단 포트 서버를 vi편집기로 작성. 코드와 VI편집기 사용법은 아래에 첨부해두겠습니다
//app.js
const express = require('express');
const app = express();
const port = 3001;
app.get('/', (req, res) => res.send('hello'));
app.listen(port, () => console.log("server is open..."));
VI편집기 사용법
//app.js를 vi 편집기로 오픈
vi app.js
//키보드에서 i키를 누르면 insert모드로 진입. 삽입/수정이 가능해짐
i
//위에 표기해둔 서버 코드를 입력
//esc키를 통해 insert모드 해제 -> 이제 :커멘드를 사용할 수 있음.
//:wq(저장), :q!(저장하지 않음)
:wq
shell script 작성
앞서 만든 app.js를 기동하고 정지시키는 shell script를 작성하려고 합니다.
처음에 구조이야기 할때 만들어뒀던 start.sh실행, stop.sh정지를 vi편집기로 작성하시면 됩니다.
//start.sh
#!/bin/bash
SERVER_NAME="node_server"
LOG_FILE="server.log"
PID_FILE="server.pid"
echo "String $SERVER_NAME.."
node ../app.js > $LOG_FILE 2>&1 &
echo $! > $PID_FILE
//stop.sh
#!/bin/bash
SERVER_NAME="node_test_server"
PID_FILE="server.pid"
if [ -f $PID_FILE ]; then
PID=$(cat $PID_FILE)
echo "Stopping $SERVER_NAME with PID $PID..."
kill $PID
rm -f $PID_FILE
echo "$SERVER_NAME stopped."
else
echo "$SERVER_NAME is not running."
fi
이렇게 실행파일을 실행하면 되지만 일반적으로 파일을 생성하면 파일 자체에는 권한이 존재하지 않기에 파일에 x실행권한을 부여해줍니다.
chmod +x start.sh stop.sh
chmod는 파일의 모드를 변경하는 명령어고 +x는 +추가, x실행으로 실행 권한을 추가해주게 됩니다.

변경되었죠? ls -al로 상세보기에서 파일권한부분에 x가 추가된걸 확인하실 수 있습니다
실행 확인

잘 실행되는 것을 알 수 있다!