반응형

ulimit -a 명령어를 실행해보면 아래와 같이 나타남

여기서 주의깊게 봐야 하는 정보는 file size로 소켓이 최대 접속 가능한 개수를 나타난다.
보통 1024개가 기본 설정인데 어지간한 소켓 서버라면 1024로는 턱없이 부족할터
 
파일 오픈 개수를 늘려야 한다.

root 권한으로 접속하여 /etc/security/limits.conf 열어서 아래처럼 수정하면 된다.

vi /etc/security/limits.conf
* soft nofile 400000
* hard nofile 400000

저장 후 터미널을 새로 로그인 하여 ulimit -a 명령어를 실행해보면 지정한 대로 접속 개수가 증가되어 있음을 확인할 수 있고 client socket의 connection역시 성공적으로 연결됨을 확인할 수 있을 것이다.

반응형
Posted by Hippalus
,

반응형

일전에 cent os에 node.js 설치하기 글을 작성한적 있다.
https://hippalus.tistory.com/607

 

cent os에 node.js 설치하기

linux cent os에 node.js를 설치하기 위해선 yum을 이용하여야 한다. root권한이 있는 계정으로 접속한 후 yum repolist를 실행해보면 아래 스샷처럼 보통 초기엔 epel이란게 없기 마련이다. EPEL 저장소가 없

hippalus.tistory.com


이 방법 말고 더 나은 방법으로 linux에서 node.js를 설치하고자 한다.

먼저 node.js 홈페이지의 다운로드로 이동한다.
https://nodejs.org/en/download

 

Node.js — Download

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

여기서 Linux Binaries가 두 버전이 있는데 일반적이면 x64를 설치하면 된다.
x64: 대부분의 데스크톱 및 서버 시스템에서 사용된다. 일반적으로 인텔 또는 AMD의 64비트 아키텍처를 사용하는 시스템에 적합.
ARM: ARM 아키텍처를 사용하는 시스템에 대한 바이너리로 Raspberry Pi와 같은 임베디드 장치나 ARM 기반의 서버에 설치할 때 적합.

위 화면에서 64-bit의 링크를 마우스 우측으로 눌러 링크 주소 복사하기를 눌러 복사 한다.

복사해보면 2024년 2월 현재 다운로드 주소는 다음과 같다.
https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.xz

이제 리눅스로 접속 후 su명령어로 관리자 권한으로 진행한다.

노드가 설치될 폴더를 생성 후 해당 폴더로 이동한다.
cd /opt
mkdir nodejs
cd nodejs

앞서 복사했던 주소로 다운로드를 실행한다.
wget https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.xz

이제 다운로드 된 압축을 푼다.
파일명은 ls명령어로 확인하여 각자 맞는 파일명을 적어주면 된다.
다시 말하지만 파일명 등은 2024년 2월 현재 시점의 파일명이다.
xz -d node-v20.11.1-linux-x64.tar.xz
tar xf node-v20.11.1-linux-x64.tar

심볼릭 링크를 생성한다.
ln -s /opt/nodejs/node-v20.11.1-linux-x64 /opt/nodejs/node
ln 명령어는 심볼릭 링크를 생성하는 명령어로 -s 옵션은 심볼릭 링크를 생성하라는 것을 나타낸다.
그 뒤에는 실제 파일이나 디렉토리의 경로를 지정하고, 마지막에는 생성될 링크의 경로를 지정한다.

/opt/nodejs/node-v20.11.1-linux-x64 경로에 있는 디렉토리를 가리키는 심볼릭 링크를 /opt/nodejs/node라는 이름으로 생성하게 된다.
이렇게 하면 /opt/nodejs/node라는 경로로 접근하면 실제로 /opt/nodejs/node-v20.11.1-linux-x64에 있는 내용을 볼 수 있게 되므로 이는 더 간단하고 직관적인 경로로 Node.js를 사용할 수 있도록 도와준다.

끝으로 환경 변수에 등록해 준다.
vim ~/.bashrc

제일 마지막 라인에 아래 라인을 추가 한다.
export PATH="$PATH:/opt/nodejs/node/bin"

저장 하고 나온 후 추가한 내용을 즉시 적용시킨다.
source ~/.bashrc

이제 아무 디렉토리에 가서 node -v를 실행해보면 현재 설치된 node의 버전이 확인 될 것이다.

반응형
Posted by Hippalus
,

반응형

개발하다 8976 포트를 사용하는 node.js 프로그램을 개발하였는데 
listen이 안되길래 분명히 kill을 해줘도 계속 되살아 났다.

포트 현황을 확인하기 위해 리눅스에서 netstat를 실행해보니 아래처럼 주루룩 나온다.

netstat -tnlp


보다 간단하게 확인하기 위해 grep와 포트번호를 입력하고 실행하면 하나만 나오는게 확인 된다.

netstat -nap | grep :8976

(이때 root권한으로 실행을 해야 프로세스아이디 확인이 된다는 이야기를 본것 같다.)
21688을 실행시키고 있는 부모의 프로세스ID를 찾는 명령언데
ps -o ppid= -p 21688

이걸 실행하니 부모의 프로세스 아이디가 내 경우 11811이었다.

ps -p 11811
이 process id로 조회를 해보면 pm2로 실행되고 있었다.
해당 프로세스 아이디를 kill 11811 해주고 pm2가 실행하던 프로세스 아이디도 kill해주면 증상이 해결된다.


반응형
Posted by Hippalus
,

반응형

linux cent os에 node.js를 설치하기 위해선 yum을 이용하여야 한다.
root권한이 있는 계정으로 접속한 후 yum repolist를 실행해보면 아래 스샷처럼 보통 초기엔 epel이란게 없기 마련이다.

EPEL 저장소가 없으면 아래의 명령어를 입력하여 저장소를 추가한다.
yum install epel-release
Y/N을 물어오는데 이 때 Y키만 눌러주면 된다.

다시 처음처럼 yum repolist를 눌러보면 epel 저장소를 볼 수 있을것이다.

이제 본격적으로 node.js를 설치해본다.
yum install nodejs 을 입력하고 엔터를 치면 아까 yum처럼 쭉 나오면서 Y/N을 물어볼 것이다.
이때도 Y만 눌러주면 된다.

이제 끝으로 npm만 설치하면 된다.
node.js에는 다양하게 개발된 package들이 존재한다.
이를 설치하기 위한 manager가 npm이다.
아래 명령어를 입력하여 NPM을 설치한다.
yum install npm

설치된 node의 버전을 보고 싶다면 node -v; 를 입력하고 엔터를 치면 된다.
설치된 npm의 버전을 보고 싶다.면 npm -v;를 입력하고 엔터를 치면 된다.

참고로 cent os 버전이 4.x면 node.js 설치가 불가능하다.
cent os 5에서부터 지원을 하는것 같긴한데 불확실하고 최소한 7이나 8정도로 업그레이드 해야 하나 보다.

역시 windows가 참 편하게 잘 만든 os다.

반응형
Posted by Hippalus
,