250x250
syk531
하루
syk531
전체 방문자
오늘
어제
  • 분류 전체보기 (166)
    • 개발 (166)
      • java (11)
      • kotlin (7)
      • spring, spring boot (35)
      • Javascript (4)
      • Tyhmeleaf (2)
      • Kafka (17)
      • Docker (8)
      • Kubernetes (3)
      • Elastic Stack (4)
      • react native (3)
      • Web (4)
      • GIS (3)
      • 리눅스 (16)
      • Windows (2)
      • 네트워크 (2)
      • 안드로이드앱 (5)
      • git (2)
      • Tool (15)
      • 프로젝트 (7)
      • 백준알고리즘 (14)
      • DB (2)

인기 글

최근 글

블로그 메뉴

    공지사항

    태그

    • 티스토리챌린지
    • 오블완
    • 뉴스앱

    최근 댓글

    티스토리

    hELLO · Designed By 정상우.
    syk531

    하루

    개발/리눅스

    [리눅스] service 등록 방법

    2024. 4. 3. 11:47
    728x90
    반응형

    1. 서비스 파일 생성

    • /etc/systemd/system/ 디렉토리에 .service 파일을 생성합니다. 예를 들어, myapp.service라는 파일을 만듭니다.
    sudo vi /etc/systemd/system/myapp.service

     

    2. 서비스 파일 내용 작성

    • 아래와 같은 내용으로 서비스 파일을 작성합니다. 경로와 옵션은 실제 환경에 맞게 조정해야 합니다.
    [Unit]
    Description=My Java Application
    
    [Service]
    User=root
    ExecStart=/usr/bin/java -jar /path/to/your/myapp.jar
    
    [Install]
    WantedBy=multi-user.target
    • [Unit] 섹션: 서비스 파일의 메타 데이터와 서비스의 종속성을 정의합니다.
      • Description=My Java Application: 이 서비스에 대한 설명입니다. 이 경우 "My Java Application"이라는 이름으로 서비스를 설명하고 있습니다.
    • [Service] 섹션: 서비스의 동작 방식을 정의합니다.
      • User=root: 이 서비스가 어떤 사용자 권한으로 실행될지 정의합니다. 여기서는 최고 관리자 권한인 root로 설정되어 있습니다.
      • ExecStart=/usr/bin/java -jar /path/to/your/myapp.jar: 서비스를 시작할 때 실행되는 명령어입니다. 이 경우, Java 애플리케이션을 시작하기 위해 java -jar 명령어를 사용하여 특정 .jar 파일을 실행합니다.
    • [Install] 섹션: 이 서비스가 어떻게 설치될지, 어느 대상에 의해 자동으로 시작될지 정의합니다.
      • WantedBy=multi-user.target: 이 서비스가 어떤 대상에 의해 시작되길 원하는지 정의합니다. multi-user.target은 시스템이 다중 사용자 모드로 부팅될 때 해당 서비스가 시작되도록 요청합니다. 이는 기본적으로 그래픽 사용자 인터페이스(GUI)가 없는, 여러 사용자가 접근 가능한 런레벨에서 서비스가 시작되어야 함을 의미합니다.

     

    3. systemd 서비스 활성화 및 시작

    • systemd를 사용해 서비스를 활성화하고 시작합니다.
    sudo systemctl daemon-reload
    sudo systemctl enable myapp.service
    sudo systemctl start myapp.service
    • sudo systemctl daemon-reload: 이 명령어는 systemd 데몬을 리로드하여, 수정된 유닛 파일(.service 파일 등)의 최신 버전을 읽어들입니다. 즉, 서비스 설정 파일이 변경되었을 때, 그 변경사항을 systemd 시스템이 인식할 수 있도록 하는 명령어입니다. 유닛 파일의 변경사항을 적용하기 위해 주로 사용됩니다 .
    • sudo systemctl enable myapp.service: 이 명령어는 시스템 부팅 시 myapp.service 서비스를 자동으로 시작하도록 설정합니다. 서비스를 "활성화"하는 것이며, 이렇게 함으로써 시스템이 시작될 때 해당 서비스도 함께 시작되도록 구성할 수 있습니다. 즉, 서비스가 부팅 시 자동으로 실행되게 만드는 명령어입니다 .
    • sudo systemctl start myapp.service: 이 명령어는 myapp.service 서비스를 즉시 시작합니다. 서비스가 현재 비활성 상태일 경우, 이 명령어를 통해 서비스를 활성화하고 실행할 수 있습니다. 명령어 실행 즉시 서비스가 시작되며, 이는 서비스를 수동으로 시작할 때 사용됩니다 .
    728x90
    반응형
    저작자표시 (새창열림)

    '개발 > 리눅스' 카테고리의 다른 글

    [CentOS7] yum 명령어 오류 해결 (Could not resolve host: mirrorlist.centos.org; 알 수 없는 오류)  (4) 2024.07.03
    [CentOS7] [Spring Boot] [WebSocket] WebSocket Server 연결안되는 현상  (0) 2024.06.13
    [Ubuntu] Openjdk 21 설치방법(java version upgrade)  (0) 2023.12.05
    nohup, &, 표준입출력 리다이렉션  (0) 2022.12.15
    sh bash 차이점  (0) 2022.12.14
      '개발/리눅스' 카테고리의 다른 글
      • [CentOS7] yum 명령어 오류 해결 (Could not resolve host: mirrorlist.centos.org; 알 수 없는 오류)
      • [CentOS7] [Spring Boot] [WebSocket] WebSocket Server 연결안되는 현상
      • [Ubuntu] Openjdk 21 설치방법(java version upgrade)
      • nohup, &, 표준입출력 리다이렉션
      syk531
      syk531
      기억을 위해 기록을.

      티스토리툴바