사용자가 생성한 시스템 단위 파일을 저장할 위치

사용자가 생성한 시스템 단위 파일을 저장할 위치

nginx.service예를 들어 Ubuntu 16.04에서 Nginx 또는 이와 유사한 시스템 파일을 어디에 넣어야 합니까 ?

답변1

추천 장소는/etc/systemd/system/nginx.service

그런 다음 다음 명령을 실행하십시오.

systemctl enable nginx

그리고 마지막으로

systemctl start nginx

답변2

일반적으로 Ubuntu에서는 패키지 제공 단위 파일이 /lib/systemd/system/디렉터리 에 저장되는 /lib/systemd/system/nginx.service반면, 사용자가 제공한 패키지 또는 패키지 제공 단위 파일에 대한 수정 사항은 /etc/systemd/system/디렉터리에 저장됩니다.

이제 다음을 수행하여 재정의할 수 있습니다.

  • 유닛 파일의 이름을 제공된 패키지로 지정합니다. 예를 들어 override를 사용 /lib/systemd/system/nginx.service하면 파일을 만들고 /etc/systemd/system/nginx.service거기에 지시문을 넣을 수 있습니다.

  • .conf또는 원본 유닛 파일의 이름을 따서 디렉터리 이름에 추가된 디렉터리로 끝나는 드롭인 스니펫을 만들 수 있습니다. .d예를 들어 이름이 지정된 파일을 만들고 /etc/systemd/system/nginx.service.d/override.conf거기에 명령문을 넣을 수 있습니다.


이제 systemctl edit명령을 활용하여 모든 수동 작업을 수행할 수 있습니다. 즉, 필요한 재정의 파일이 생성됩니다(처음에는 드롭인 스니펫을 위한 중간 디렉터리가 포함된 임시 파일이 생성됩니다). 저장하면 커밋되고 rename()임시 파일이 원하는 최종 파일로 변경됩니다. 재정의할 파일을 편집하기만 하면 됩니다.

ngnx.service예를 들어 위에서 언급한 ( /lib/systemd/system/nginx.service) 에 대한 재정의 코드 조각을 만들려면 다음을 수행하세요 .

systemctl edit nginx.service

기본적으로 파일을 사용합니다 /etc/systemd/system/nginx.service.d/override.conf. 을 사용 하면 --full전체 대체 파일이 /etc/systemd/system/nginx.service사용됩니다(원본 콘텐츠가 /lib/systemd/system/nginx.service이 파일에 복사됩니다.).

--runtime물론 일시적인 스니펫을 생성하는 데 사용할 수도 있습니다 /run/systemd/system/(첫 번째 드롭인 스니펫에서는 전체가 상호 배타적이지 않음) --runtime.--full

사용할 편집기를 분명히 선택할 수 있으며 우선 순위는 다음과 같습니다.

$SYSTEMD_EDITOR > $EDITOR > $VISUAL > editor > nano > vim > vi

관련 정보