Type=forking
"simple" (기본값) 유닛이 시작된 경우 즉시 systemd 는 유닛의 시작이 완료되었다고 판단한다. 다른 유닛과 통신하기 위해 소켓을 사용하는 경우 이러한 설정을 사용하면 안된다.
"forking" 자식 프로세스를 생성이 완료되는 단계까지를 systemd 가 시작이 완료되었다고 판단하게 된다. 부모 프로세스를 추적할 수 있도록 PIDFile= 필드에 PID 파일을 선언해 주어야 한다.
"oneshot" 은 "simple" 과 다소 유사하지만 단일 작업을 수행하는데 적합한 타입니다. 또한 실행 이후 해당 실행이 종료되더라도 RemainAfterExit=yes 옵션을 통해 유닛이 활성화 상태로 간주할 수 있다.
"notify" 은 "simple" 과 동일하다. 다만 유닛이 구동되면 systemd 에 시그널을 보낸다. 이때 시그널에 대한 내용은 libsystemd-daemon.so 에 선언 되어 있다. "dbus" DBUS 에 지정된 BusName 이 준비될때까지 대기한다. 즉 DBUS 준비가 완료된 이후 유닛이 시작되었다고 간주한다.
User=JIRA
유닛의 프로세스를 수행할 사용자명, 그룹명 등을 지정한다.
Environment=
해당 유닛 에서 사용할 환경 변수를 선언한다. 또한 반드시 “Exec*=” 옵션보다 상단에 위치해야 한다. 예제는 아래와 같다.
Environment="ONE=one" 'TWO=two two'
EnvironmentFile=
해당 유닛에서 사용할 환경 변수 파일을 선언한다. 환경 변수 파일에서 "#' 와 ";" 로 시작되는 라인은 주석으로 처리된다. "Environment=" 와 같이 사용하는 경우 "Environment=" 옵션값이 먹게 된다. 또한 반드시 “Exec*=” 옵션보다 상단에 위치해야 한다.
ExecStart=
구동 명령어(스크립트)을 선언한다. 실행 명령어는 반드시 절대 경로 또는 변수(${STRINGS} 따위) 로 시작해야 한다. 다중 명령어를 지원한다. 예제는 아래와 같다.
ExecStart="commnad 1; command 2; command 3” 또는
ExecStart="commnad 1”
ExecStart="command 2”
ExecStop=
중지 명령어(스크립트)를 선언한다. "ExecStart=" 동일하게 사용하면 된다. 중지 방식은 "KillMode=" 로 지정된다.