일반적으로 시스템 옵션 줄에는 어떤 형식이 허용됩니까?

일반적으로 시스템 옵션 줄에는 어떤 형식이 허용됩니까?

현재 일부 시스템 서비스 파일을 작성 중이며 가독성 등을 향상시킬 수 있도록 해당 콘텐츠의 형식을 올바르게 지정하는 것이 무엇인지 궁금합니다. 일부 코드 스타일을 전혀 구현할 수 있는지에 대한 질문입니다.

내가 가진 것지금까지 읽었다주석 지원에 관한 것입니다. 일부 옵션은 값 목록과 같은 공백을 지원하고 \여러 줄을 연결하는 데 사용할 수 있습니다. 일반적인 조언으로는 이 정도입니다. 내가 읽지 못한 것은 키-값 쌍 자체에 대한 철저한 문서입니다. 예를 들어 키 이름 앞/뒤와 값 앞에 줄을 들여쓰기 위해 공백이나 탭을 넣을 수 있는지 여부 등이 있습니다.

다음은 제가 스스로에게 묻는 내용의 한 예입니다.

[Unit]
Description=some pretty long description \
            spanning multiple lines
RequiresMountsFor=/tmp

[Unit]
Description       = some pretty long description \
                    spanning multiple lines
RequiresMountsFor = /tmp

[Unit]
    Description       = some pretty long description \
                        spanning multiple lines
    RequiresMountsFor = /tmp

옵션 형식 지정과 관련하여 가능한 내용을 설명하는 문서가 있습니까? 아니면 그러한 것이 없다는 것은 이미 내가 갖고 싶은 것이 전혀 불가능하다는 신호입니까? 그렇지 않으면매뉴얼 페이지에 문서화되어 있음...

답변1

현재2016년 4월, 구문에 대한 공식적인 정의가 없습니다.


내 생각엔 가장 가까운 곳이 괜찮을 것 같아선적 서류 비치이 줄은 다음과 같습니다

구문은 다음에서 영감을 받았습니다.XDG 데스크탑 엔트리 사양 .desktopMicrosoft Windows 파일에서 영감을 받은 파일입니다 .ini.

...

동일한 값에 여러 할당을 사용하면 유닛 파일이 XDG .desktop파일 형식의 파서와 호환되지 않게 됩니다.

거기에서 우리는 갈 수 있습니다"파일의 기본 형식"을 설명하는 섹션, 주장:

항목

파일의 항목은 {key,value}다음 형식의 쌍입니다.

Key=Value

등호 앞과 뒤의 공백은 무시되어야 합니다. 부호 =는 실제 구분 기호입니다.

키 이름에는 문자만 A-Za-z0-9-사용할 수 있습니다.

대소문자가 중요하므로 키 Name와 키 NAME는 동일하지 않습니다.

동일한 그룹에 있는 여러 키의 이름은 동일할 수 없습니다. 다른 그룹의 키는 동일한 이름을 가질 수 있습니다.

안타깝게도,메일링 리스트에 보낸 일부 메시지에 따르면, 그것은 몇 군데에서 벗어났습니다... 그리고 파서의 소스 코드를 살펴보는 것 외에는 명시적인 문서가 없는 것 같습니다.


systemd-analyze verify <file>유닛 파일의 유효성을 검사하는 데 사용할 수 있습니다 .https://github.com/systemd/systemd/issues/3677

답변2

나는 systemd당신의 시스템의 매뉴얼 페이지를 방문할 것입니다. 형식은 섹션 5에 지정된 것 같습니다. 예:여기를 보아라. 예를 들어 로 이를 호출할 수 있습니다 man 5 systemd.

관련 정보