Ubuntu 22.04 Nexus 3.92 systemd 서비스 등록 및 자동 실행 설정 방법

Ubuntu 22.04 환경에서 Nexus Repository Manager 3.92를 systemd 서비스로 등록하고 자동 실행하는 방법을 정리했습니다. root 실행 경고, nexus.rc 설정, This account is currently not available 메시지 원인과 해결 방법까지 함께 설명합니다.

Ubuntu 22.04 Nexus 3.92 systemd 서비스 등록 및 자동 실행 설정 방법

Ubuntu 22.04 환경에서 Nexus Repository Manager 3.92를 설치한 후 단순히 스크립트로 실행하는 경우가 많습니다. 하지만 운영 서버에서는 서비스 장애 대응, 서버 재부팅 후 자동 시작, 프로세스 관리 등을 위해 systemd 서비스 등록이 필수입니다.

이번 글에서는 Nexus 실행 시 발생하는 root 실행 경고와 This account is currently not available 메시지의 원인을 분석하고, 운영 환경에서 권장되는 systemd 등록 방법까지 정리하겠습니다.


Nexus 기본 실행 방법

Nexus 설치 후 일반적으로 아래와 같이 실행합니다.

 
cd /opt/nexus/bin

sudo ./nexus start
 

하지만 실행 시 다음과 같은 경고가 출력될 수 있습니다.

 
WARNING: Detected execution as "root" user.
This is NOT recommended!
 

Nexus는 보안 및 안정성 측면에서 root 계정으로 실행하는 것을 권장하지 않습니다.


Nexus 전용 계정으로 실행 설정

Nexus 전용 사용자로 실행하기 위해 nexus.rc 파일을 생성합니다.

 
sudo vi /opt/nexus/bin/nexus.rc
 

내용은 다음과 같습니다.

 
run_as_user="nexus"
 

설정 후 Nexus를 실행하거나 중지하면 아래와 같은 메시지가 출력될 수 있습니다.

 
sudo ./nexus stop

su: warning: cannot change directory to /home/nexus: No such file or directory
This account is currently not available.
 

This account is currently not available 원인 분석

먼저 Nexus 계정 정보를 확인합니다.

 
cat /etc/passwd | grep nexus
 

예시 결과

 
nexus:x:116:123::/home/nexus:/usr/sbin/nologin
 

여기서 중요한 부분은 다음입니다.

 
/usr/sbin/nologin
 

이 설정은 계정 로그인을 차단하기 위한 보안 설정입니다.

즉 아래 상태는 모두 정상입니다.

항목상태
Nexus 서비스 실행 가능
Nexus 프로세스 실행 가능
SSH 로그인 불가
su - nexus 불가

따라서 아래 메시지는 실제 오류가 아닙니다.

 
This account is currently not available.
 

이는 Nexus 계정에 직접 로그인할 수 없다는 의미일 뿐이며, 서비스 실행 자체와는 관계가 없습니다.


운영 환경에서 권장되는 방법

실제 운영 서버에서는 Nexus를 직접 실행하기보다 systemd 서비스로 등록하는 것이 좋습니다.

서비스 파일 생성

 
sudo vi /etc/systemd/system/nexus.service
 

다음 내용을 입력합니다.

 
[Unit]
Description=Nexus Repository Manager
After=network.target

[Service]
Type=forking
User=nexus
Group=nexus

ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop

LimitNOFILE=65536
TimeoutSec=600
Restart=on-failure

[Install]
WantedBy=multi-user.target
 

systemd 서비스 등록

서비스 설정을 적용합니다.

 
sudo systemctl daemon-reload
 

부팅 시 자동 시작 등록

 
sudo systemctl enable nexus
 

서비스 시작

 
sudo systemctl start nexus
 

Nexus 서비스 관리 명령어

systemd 등록 후에는 아래 명령만 사용하면 됩니다.

시작

 
sudo systemctl start nexus
 

중지

 
sudo systemctl stop nexus
 

재시작

 
sudo systemctl restart nexus
 

상태 확인

 
sudo systemctl status nexus
 

정상 실행 시 다음과 같이 표시됩니다.

 
Active: active (running)
 

Nexus 포트 확인 방법

서비스가 정상적으로 동작하는지 확인합니다.

포트 확인

 
ss -ntlp | grep 9998
 

또는

 
netstat -ntlp | grep 9998
 

HTTP 응답 확인

 
curl -I http://localhost:9998
 

정상 응답이 반환되면 Nexus가 정상적으로 실행 중인 상태입니다.


기존 방식으로 사용하려면

만약 systemd를 사용하지 않고 기존 방식으로 실행하려면 nexus.rc 파일을 삭제하면 됩니다.

 
sudo rm -f /opt/nexus/bin/nexus.rc
 

이후 아래와 같이 실행 가능합니다.

 
sudo ./nexus start
sudo ./nexus stop
 

다만 운영 환경에서는 권장되지 않습니다.


운영 서버에서 systemd 사용을 권장하는 이유

실제 운영 서버에서는 Nexus 하나만 실행되는 경우가 거의 없습니다.

대표적으로 아래 서비스들과 함께 운영됩니다.

  • GitLab
  • Nexus Repository Manager
  • Apache HTTP Server
  • Nginx
  • Jenkins
  • Docker
  • Kubernetes Agent
  • vLLM

이러한 환경에서는 서비스 상태 확인, 자동 재시작, 부팅 시 자동 실행 기능이 중요하기 때문에 systemd 관리가 사실상 표준입니다.

운영 중 자주 사용하는 명령어는 아래 네 가지입니다.

 
sudo systemctl start nexus
sudo systemctl stop nexus
sudo systemctl restart nexus
sudo systemctl status nexus
 

FAQ

Q. This account is currently not available 는 오류인가요?

아닙니다.

/usr/sbin/nologin 설정으로 인해 계정 로그인이 차단되어 발생하는 정상 메시지입니다.

Q. Nexus는 반드시 root가 아닌 계정으로 실행해야 하나요?

네. Sonatype에서도 root 실행을 권장하지 않습니다. Nexus 전용 계정을 사용하는 것이 안전합니다.

Q. 서버 재부팅 후 Nexus가 자동 실행되게 하려면?

다음 명령을 실행합니다.

 
sudo systemctl enable nexus
 

Q. Nexus가 실행되지 않으면 어디를 확인해야 하나요?

다음 로그를 우선 확인합니다.

 
journalctl -u nexus -f
 

또는

 
sudo systemctl status nexus
 

마무리

Ubuntu 22.04에서 Nexus Repository Manager 3.92를 운영할 경우 단순 스크립트 실행보다 systemd 서비스 등록을 사용하는 것이 훨씬 안정적입니다.

특히 This account is currently not available 메시지는 Nexus 계정의 보안 설정 때문에 나타나는 정상 동작이며 서비스 실행 문제와는 관계가 없습니다. 운영 환경에서는 Nexus를 systemd로 등록하여 자동 실행과 장애 복구 기능을 활용하는 것이 가장 권장되는 구성입니다.