주 메뉴 열기

wwiki β

바뀜

Service

4,001 바이트 추가됨, 2021년 8월 14일 (토) 08:25
편집 요약 없음
/lib/systemd/system : .service, .socket파일을 모아 둔 곳 socket파일 경로 (enable시키면 링크파일 생성-> /etc/systemd/system/multi-user.target.wants/xxxx.service)
/usr/lib/systemd/system/user: user영역 .service파일(데비안 계열에서만 존재, enable 하면 ~/.config/systemd/user/multi-user.target.wants/에 링크생성), root로 실행권한은 없는 듯하다.
/etc/systemdinit.d/system: enable시키면 링크파일 생성 ==서비스 파일== === [Unit] === ====Requires====상위 의존성을 구성한다. 목록의 유닛이 정상적일 경우 유닛이 시작된다. (필요 조건), network-online.target docker.service ====Wants===="Requires=" 보다 다소 완화된 옵션이다. 상위 의존성의 유닛이 시작되지 않더라도 전체 수행과정에 영향을 끼치지 않는다. 이 옵션은 하나의 유닛을 다른 유닛과 연계할 경우 사용하게 된다. (충분 조건) ==== Before, After ====유닛 시작의 전후 관계를 설정한다. 해당 설정은 "Requires=" 설정과는 독립적이다. "Before=" 에 나열된 유닛이 시작되기 전에 실행하고 "After=" 은 해당 유닛이 시작된 이후 나열된 유닛이 실행한다. 이 설정은 시스템이 종료(shutdown) 될때는 역으로 작동하게 된다. === [Service] === ====RestartSec====재시작 명령을 수행할때 중지 이후 다시 시작하는데 대기(sleep)하는 시간을 설정한다. 기본값은 "100ms" 이다. 각각 “min”, “s”, “ms” 단위로 설정한다. 해당 설정은 Restart= 옵션이 있는 경우에만 적용된다. ====Restart====[no|on-success|on-failure|on-watchdog|on-abort|always] 유닛이 죽었을때나 혹은 "WatchdogSec=" 만큼의 시간 동안 응답이 없는 경우 재시작한다. "ExecStartPre=", "ExecStartPost=", "ExecStopPre=", "ExecStopPost=", "ExecReload=" 에 설정된 유닛의 경우에는 포함되지 않는다. 즉 해당 유닛에만 해당된다.
"no" (기본값), 유닛을 다시 시작하지 않는다. "on-success" 는 유닛이 정상적으로 종료되었을 때만 재시작한다. 종료시에 "0" 값을 리턴하여 종료되었거나 SIGHUP, SIGINT, SIGTERM, SIGPIPE 등과 같은 시그널 또는 "SuccessExitStatus=" 설정에서 지정된 리턴 코드 목록에 따른 시그널에 대해서 모두 성공으로 인식해 재시작을 하게 된다. "on-failure" 유닛이 비정상적으로 종료되었을때 재시작한다. 리턴값이 "0" 이 아닌 경우, core dump 와 같이 비정상적인 시그널을 받고 종료된 경우, 타임 아웃값내 응답이 없는 경우 등일때 재시작 하게 된다. "on-watchdog" "WatchdogSec=" 에 설정된 시간내 응답이 없는 경우에만 재시작 한다. "on-abort" 지정되지 않은 리턴값을 받은 경우 재시작을 한다. "always" 종료 상태 등과 무관하게 무조건 재시작한다. (사용자가 중지해도 시스템이 다시 띄우게 된다. 설정된 유닛 중지 시 주의가 필요하다.) ====WorkingDirectory====프로세스의 작업 디렉토리를 지정한다. 별도의 지정이 없으면 유닛은 "/etc/init" 디렉토리를 작업 디렉토리로 사용한다. 특정 디렉토리에서 실행해야하는 프로세스에서 필요하다. ====SyslogFacility====로그 사설을 설정할 수 있다. "kern, user, mail, daemon, auth, syslog, lpr, news, uucp, cron, authpriv, ftp, local0, local1, local2, local3, local4, local5, local6, local7" 등의 값으로 설정 가능하다. ==== SyslogIdentifier ==== ==== User ====서비스를 실행할 사용자를 지정한다. www-data ==== CPUQuota ====CPU할당량을 %로 제한한다. ==== LimitCORE ====기본값은 infinity로 숫자형식의 값을 변경해서 코어수를 제한한다. systemctl status 명령으로 CGroup의 프로세스 아이디가 설정한 코어수+1임을 확인할 수 있다. === [Install] ===systemctl enable [service name] 명령 실행할 때 참조한다. ==== WantedBy ====이 서비스가 어떤 전제 조건 하에서 실행되는 지를 결정하는 프로퍼티이다. * network.target : network가 active 되었을 때, 여러 네트워크가 있을 때 하나만 활성화되어서 실행된다.* multi-user.target : runlevel3 환경이 셋업될 때* network-online.d/target : network가 online [[분류:리눅스]]
편집
2,431