명령줄에서 systemctl을 사용하여 새 시스템 장치/서비스/타이머/소켓을 생성하시겠습니까?

명령줄에서 systemctl을 사용하여 새 시스템 장치/서비스/타이머/소켓을 생성하시겠습니까?

CLI 도구를 systemctl edit사용하여 서비스, 타이머, 소켓, 장치, 마운트, 자동 마운트, 대상, 스왑, 경로, 슬라이스, 범위 또는 nspawn 파일과 같은 기존 시스템 단위를 편집할 수 있습니다.시스템 단위를 제거/재설정할 수 있는 또 다른 하위 명령이 있습니다.이와 같은 새 systemctl 파일을 만들 수도 있나요?

대부분의 온라인 가이드에서는 사용자 정의 텍스트 편집기를 사용하고 파일을 어딘가에 배치하라고 지시합니다(먼저 올바른 systemd 디렉토리를 다시 찾아야 하는 곳...). 또한 파일을 수동으로 복사하는 경우 데몬을 다시 로드해야 합니다 systemctl daemon-reload.

그러나 시스템 관리자로서 기본 위치에 새 장치를 신속하게 생성하고 systemctl edit기존 항목을 편집/덮어쓸 수도 있습니다. 제가 가장 좋아하는 CLI 텍스트 편집기(나노 정도)에 바로 표시되고 콘텐츠를 즉시 편집할 수 있다는 점이 마음에 듭니다.

시도했지만 systemctl add명령 systemctl create이 모두 존재하지 않습니다.

나는 온라인에서 해당 정보를 찾지 못했고 여기에서는 Stackexchange 답변도 찾지 못했습니다 ...

답변1

실제로 systemctl edit아직 존재하지 않는 새 서비스로 명령을 실행하려고 하면 수행할 작업을 정확하게 알려줍니다.

$ systemctl edit happy-unicorns.service
No files found for happy-unicorns.service.
Run ‘systemctl edit --force --full happy-unicorns.service' to create a new unit.

이와 같이새 시스템 장치 만들기(이 경우 서비스) 실제로 다음을 실행합니다.

$ systemctl edit --force --full happy-unicorns.service

$EDITOR그러면 텍스트 편집기가 팝업으로 표시됩니다( Linux 도구에서 일반적으로 사용하는 것처럼 환경 변수를 설정하여 지정할 수 있음 ).

의미:

  • --full 생성된 오버레이뿐만 아니라 전체 유닛 파일이 편집됩니다. 즉, 이 예에서는 예 /etc/systemd/system/.#happy-unicorns.service11738733f89dc655를 들어 서비스에 대한 디렉터리 및 재정의를 만드는 대신 올바른 위치에서 전체 서비스 파일을 실제로 사용합니다./etc/systemd/system/happy-unicorns.service.d/.#override.conf98be493089631328
    노트:systemctl이 임의의 숫자를 추가하고 파일을 임시 파일로 표시하여 변경 사항이 직접 적용되지 않는 것을 볼 수 있습니다. 여전히 온전한 상태인지 확인되며 모든 것이 정확하면 파일이 이동됩니다.
  • --force실제로 기존 파일을 편집하는 대신 새 파일을 생성하도록 지정해야 합니다.
  • 공통 스위치를 추가하여 다른 위치(예: 사용자 또는 전역 범위)에 파일을 생성하려는 경우 모든 사용자에 대해 --user현재 사용자를 추가할 수 있습니다 --global. --system이는 현재 시스템의 기본값입니다.

별도의 하위 명령이 아니기 때문에 그렇게 명확하지 않을 수도 있다는 데 동의합니다. 하지만 파일을 편집하고 systemctl이 이미 존재하는 파일인지 결정하도록 하는 것을 생각하면 완벽하게 이해됩니다.

또한보십시오systemctl매뉴얼 페이지더 많은 정보를 알고 싶습니다.

관련 정보