Linux에서 서비스 파일을 만드는 방법

Linuxeseo Seobiseu Pail Eul Mandeuneun Bangbeob



systemd init 시스템은 이제 거의 모든 Linux 배포판의 일부입니다. 관리자나 개발자는 systemd가 관리할 수 있는 서비스를 만듭니다. 예를 들어, 부팅 시 서비스를 시작하거나 수동으로 제어하려는 경우 사용자 정의 서비스 파일을 통해 수행할 수 있습니다.

이 튜토리얼에서는 Linux에서 시스템 서비스 파일을 만드는 방법을 살펴보겠습니다.







서비스 파일이란 무엇입니까?

더 진행하기 전에 시스템 서비스 파일이 무엇인지, Linux에서 어떻게 생성되는지 알아보겠습니다.



systemd 서비스 파일에는 systemd가 서비스를 관리하도록 설정된 지침이 포함되어 있습니다. 일반적으로 다음 세 가지 섹션으로 구성됩니다.



  • 단위
  • 서비스
  • 설치하다

그만큼 단위 섹션에는 간단한 설명, 문서 페이지, 종속성 경로 등 서비스에 대한 기본 정보가 포함되어 있습니다. 그만큼 설치하다 섹션은 선택 사항이지만 일반적으로 서비스를 활성화해야 하는 시스템 상태를 관리합니다.





그만큼 서비스 섹션은 일반적으로 장치 섹션과 설치 섹션 사이에 끼워져 있습니다. 여기에는 기본적으로 systemd에서 서비스를 호출할 때 실행하는 명령인 서비스 유형과 실행 파일의 경로가 포함되어 있습니다.

일반적인 서비스 파일 구조는 다음과 같습니다.



[ 단위 ]

지시문1 =지침

지시문2 =지침



[ 서비스 ]

지시문1 =지침

지시문2 =지침



[ 설치하다 ]

지시문1 =지침

지시문2 =지침

여기서 지시문은 해당 입력을 받는 매개변수입니다. 예를 들어, 설명 지시문은 서비스 이름의 문자열을 사용합니다. 비슷한 방식으로, 실행 시작 실행 파일의 전체 경로를 고려합니다.

일반적인 서비스 파일은 SSH.서비스 아래에 나와 있습니다.

서비스 파일을 만드는 방법

시스템화된 서비스를 만들려면 핵심 지시어를 이해해야 합니다. 이 가이드에서는 완전한 기능을 갖춘 서비스 파일을 만드는 데 도움이 될 수 있는 필수 지시문을 다룰 것입니다.

서비스 파일을 생성하려면 여러 단계가 필요합니다. 먼저 스크립트 파일 생성부터 시작하겠습니다.

메모: 아래 언급된 방법을 계속하려면 루트 권한이 있어야 합니다.

1. 스크립트 만들기

초기 단계에는 서비스가 작업을 시작할 때 실행될 코드를 생성하는 작업이 포함됩니다. 이 튜토리얼에서는 Linux 시스템의 가동 시간과 메모리 사용량을 저장하는 bash 스크립트를 만듭니다.

현재 디렉터리에 다음 이름의 스크립트를 생성해 보겠습니다. myscript.sh 나노 편집기를 사용하여

sudo 나노 myscript.sh

이제 파일에 아래 스크립트를 추가하고 다음을 눌러 저장하세요. Ctrl+X 그런 다음 그리고 .

#!/bin/bash

에코 '>>시스템 가동 시간은 다음과 같습니다<<' > / 그 자신 / 마이파일.txt

가동 시간 >> / 그 자신 / 마이파일.txt

에코 '>>시스템의 메모리 사용량은 다음과 같습니다<<' >> / / 그 자신 / 마이파일.txt

무료 -중 >> / 그 자신 / 마이파일.txt

60

스크립트에는 두 개의 에코 문자열과 가동 시간 그리고 무료 명령.

그만큼 가동 시간 Linux의 명령은 시스템이 실행된 시간과 지난 1분, 5분, 15분의 평균 시스템 로드에 연결된 사용자 수를 인쇄하는 데 사용됩니다.

그만큼 무료 명령은 시스템의 메모리 사용량을 인쇄하는 데 사용됩니다. -중 플래그는 출력을 인쇄하는 데 사용됩니다. MB .

정보를 텍스트 파일에 저장하기 위해 리디렉션 연산자라는 특수 연산자를 사용합니다. 그만큼 > 연산자는 언급된 텍스트 파일에 텍스트를 삽입하는 데 사용됩니다. 그러나 파일이 아직 존재하지 않으면 생성됩니다. 동안 >> 연산자는 파일에 텍스트를 추가하는 데 사용됩니다. 그만큼 명령은 최소 1분 동안 서비스 활동을 유지하는 데 사용됩니다.

이제 필요한 권한을 부여하여 스크립트를 실행 가능하게 만듭니다.

sudo chmod +x myscript.sh

이제 스크립트에 실행 권한이 있으므로 다음 섹션으로 진행하겠습니다.

메모: 서비스 파일에 오류가 없도록 하려면 bash 스크립트에서 파일의 절대 경로를 사용하십시오.

2. .service 파일 생성

다음으로, 다음을 사용하여 서비스 파일을 만듭니다. .서비스 확대. 서비스 파일은 다음 위치에 생성되어야 합니다. /etc/systemd/시스템 예배 규칙서. 먼저 다음을 사용하여 이 디렉터리로 이동합니다. CD 명령.

CD / / 체계화된 / 체계

어떤 디렉터리에서든 서비스 파일을 생성할 수 있으며 나중에 해당 파일을 이 디렉터리로 이동할 수 있습니다.

다음을 사용하여 서비스 파일을 생성 중입니다. myservice.service 이름.

sudo 나노 myservice.service

이제 파일에 다음 줄을 추가합니다.

[ 단위 ]

설명 =나의 서비스

[ 서비스 ]

유형 =단순

실행 시작 = / 큰 상자 / 세게 때리다 / / 그 자신 / script.sh

재시작 =실패 시

[ 설치하다 ]

수배자 =다중 사용자.대상

참고하세요 [단위], [서비스], 그리고 [설치하다] ~이다 대소문자 구분 . [UNIT], [SERVICE] 등 서비스 파일 중 하나라도 잘못 언급되면 서비스 파일이 작동하지 않습니다.

서비스 이름은 다음과 같이 지정됩니다. 나의 서비스 에서 설명 지시어 [단위] 부분.

그만큼 유형 서비스의 단순한 에서 [서비스] 섹션은 기본 유형입니다. 분기 , 한 번의 기회 , 통지하다 , dbus , 유휴 등이 다른 유형 중 일부입니다.

서비스를 사용자별로 지정하려면 사용자 지시어는 사용자의 사용자 이름과 함께 사용될 수도 있습니다. 이 지시문을 사용하면 서비스 사용자 권한이 종속됩니다.

동안 실행 시작 지시어에는 실행 파일의 전체 경로가 포함되어 있습니다. 위의 예에서 스크립트 파일은 myscript.sh 에 저장됩니다 /집/샘/ 예배 규칙서. 실제로 이 지시문은 systemd에 의해 서비스가 호출될 때 실행할 내용을 관리합니다. 명령의 전체 경로가 지정되지 않으면 다음과 같은 절대 경로를 수정하도록 자동으로 확인됩니다. /usr/로컬/빈 , /usr/빈/, 그리고 /큰 상자 . 표준 명령 디렉터리에 있는 한 실행 파일 이름을 사용하는 것은 문제가 없지만 그렇지 않은 경우에는 절대 경로를 언급하십시오. 세미콜론(;)으로 구분하여 여러 명령을 사용할 수도 있습니다.

그만큼 [설치하다] 섹션은 선택사항입니다. 그러나 서비스가 활성화되는 방법을 나타냅니다. 그만큼 수배자 지시문은 실행 수준 대상 파일을 매개변수로 사용합니다. 다양한 대상 파일은 다음과 같은 시스템의 다양한 실행 수준을 나타냅니다. 전원 끄기 , 구조하다 , 다중 사용자 , 그래픽 , 그리고 재부팅 .

그만큼 다중 사용자.대상 시스템이 다중 사용자 비그래픽 세션을 허용하는 상태일 때 서비스가 활성화된다는 의미입니다.

3. 서비스 활성화

서비스를 활성화하려면 먼저 다음을 사용하여 systemd 구성을 다시 로드하세요. systemctl 공익사업.

sudo systemctl 데몬 다시 로드

그런 다음 다음을 사용하여 서비스를 다시 활성화하십시오. systemctl 명령하다 ~할 수 있게 하다 .

sudo systemctl ~할 수 있게 하다 myservice.service

확인하려면 다음을 사용하여 서비스 상태를 확인하세요. systemctl 상태 명령.

서비스가 성공적으로 실행되고 있습니다.

이제 텍스트 파일을 읽어보자 마이파일.txt 에서 생성된 서비스 /집 예배 규칙서.

일반 사용자를 위한 Systemd 서비스 파일을 만드는 방법

일반 사용자를 위한 서비스 파일을 생성하는 과정은 관리자가 서비스 파일을 생성하는 방법과 유사하다. 단, 일반 사용자용 서비스 파일을 저장하는 디렉터리는 다릅니다. 일반 사용자는 서비스 파일을 ~/.config/systemd/사용자 . 이 디렉터리는 다음을 사용하여 생성되어야 합니다. mkdir 명령.

mkdir ~ / .config / 체계화된 / 사용자

일반 사용자가 서비스를 활성화하려면 -사용자 명령은 다음과 같이 삽입됩니다. systemctl 대신에 sudo .

systemctl --사용자 데몬 다시 로드

systemctl --사용자 ~할 수 있게 하다 SERVICE-NAME.서비스

systemctl --사용자 상태 SERVICE-NAME.service

그만큼 -사용자 옵션은 사용자의 시스템 서비스 파일을 관리하는 데 사용됩니다.

서비스 파일을 제거하는 방법

서비스 파일을 제거하려면 먼저 서비스를 중지해야 합니다.

sudo systemctl 중지 SERVICE-NAME.service

이용하여 상태를 확인하세요. systemctl 상태 서비스가 중지되었는지 여부를 확인하는 명령입니다. 그런 다음 다음을 사용하여 서비스 파일을 제거하십시오. RM 명령.

sudo RM / / 체계화된 / 체계 / SERVICE-NAME.서비스

이제 체계화된 구성.

sudo systemctl 데몬 다시 로드

결론

사용자 정의 systemd 서비스는 다양한 시나리오에서 유리합니다. 이 가이드에서는 시스템 관리자를 위한 사용자 정의 시스템 서비스 파일을 생성하는 방법과 일반 사용자가 서비스 파일을 생성하는 방법을 배웠습니다. 또한 서비스 파일을 제거하는 절차도 살펴보겠습니다.