사용자 정의 upstart 서비스를 설치하는 올바른 방법


51

서버에서 서비스를 위해 upstart를 사용하고 있습니다. conf 파일을 작성하고 배치하는 /etc/init것은 쉽지만 완전히 설치되지는 않습니다. 하나 service --status-all는 나의 새로운 서비스를 나열하지 않습니다. 내가 확인하고 난에서 링크를 만들 경우 /etc/init.d/lib/init/ubstart-job이 상태에 표시됩니다. 그러나이 작업을 수동으로 수행하면 올바르게 수행하지 않는다고 생각하고 완료되지 않은 다른 구성 단계가있을 수 있습니다.

서비스를 다루는 모든 도구에 올바로 등록되도록 업 스타트 서비스를 설치하는 올바른 방법은 무엇입니까?


2
이 사람은 신출내기 서비스를 사용하여 내 질문 중 하나에 대한 답변과 자세한 설명을했다, 그것을 놓칠 수도 있었던 단계를 지적 할 수 askubuntu.com/a/278128/75967
미어 보그

1
당신은 의미 했습니까 /lib/init/upstart-job?
dalore

답변:


46

새 conf 파일을 / etc / init 폴더에 처음 복사 할 때는 다음을 호출해야합니다.

initctl reload-configuration

이를 통해 귀하의 시작이 올바르게 등록되어야합니다.


8
그래서이 올바르게 작업 (즉, 설정 startstop작업)하지만 작업이 모든 상태에 표시하지 않습니다. 그래도 수동으로 추가해야했습니다 /etc/init.d/.
James McMahon

1
@JamesMcMahon initctl listsudo로 명령 을 실행해야합니다 : sudo initctl list. 그렇게하면 전체 서비스 목록을 볼 수 있습니다.
Shahriyar Imanov

sudo가 왜 initctl list의 출력을 변경하지 않는 것처럼 보입니다.
LovesTha

@JamesMcMahon, I still had to manually add it to /etc/init.d. 아직도 무엇을 추가해야 했습니까? 즉,에 추가 된 X.conf파일 외에도 파일을에 추가해야 /etc/init합니다 /etc/init.d.
케빈 메러디스

@KevinMeredith, 죄송합니다. 자세히 설명하지 않았습니다. 2 년이 지났고 구체적인 내용을 기억할 수 없습니다. init.d 문서를 살펴보면 분명히 분명해야합니다.
James McMahon

18

서비스 매뉴얼을 확인하십시오.

service --status-all은 모든 init 스크립트를 알파벳 순서로 status 명령과 함께 실행합니다. 이 옵션은 sysvinit 작업의 상태 만 호출 하며 initctl 목록과 유사한 방식으로 시작 작업을 쿼리 할 수 ​​있습니다.

(강조 추가)

sysvinit 작업이있는 /etc/init.d에 추가하면 작동합니다. 그래서 : 대신 initctl list 를 실행 하십시오 :).


That's why adding it 무엇을 추가 하시겠습니까? 의 my_service.conf파일 외에도 파일이 /etc/init필요 /etc/init.d합니까?
케빈 메러디스

Ubuntu 16.04.4에서 작동하지 않음 LTS \\ $ initctl list initctl : 이름 "com.ubuntu.Upstart"가 존재하지 않습니다 $ sudo initctl list initctl : Upstart에 연결할 수 없음 : / start / com / ubuntu / upstart 소켓에 연결하지 못했습니다 : 연결이 거부
9

13

SysV 서비스

우분투에서 새 서비스를 추가 / 생성하는 동안 다음 단계를 따르십시오.

  1. 서비스 파일 생성 /etc/init.d/<service name>
  2. chmod 700 /etc/init.d/<service name>
  3. update-rc.d <service name> defaults
  4. update-rc.d <service name> enable

이제 서비스를 참조하십시오

service --status-all

15
귀하의 답변은 sysv와 관련이 있으며 가동되지 않습니다. 삭제하고 싶을 수도 있습니다.
jcomeau_ictx

3
실제로 유용한 응답입니다.
ATorras

다른 서비스와 관련이 있지만 실제로 유용합니다
wuppi

1

.conf 파일의 오류로 인해 작업을 initctl로 인식 할 수없는 것으로 나타났습니다. 예를 들어 setuidUpstart 버전 1.3 이하에 줄이 있습니다.


1

현재 선택된 답변이 새 서비스를 시작하기 위해 추가하는 것이 맞지만 / etc / init /의 구성이로드되지 않는 이유를 찾는 데 특히 도움이되지 않습니다. 구성이 유효하고 reload-configuration을 사용하십시오.

####Test the new config - resolving any issues before continuing:
ERROR: File /etc/init/test.conf: syntax invalid:
test.conf:35: Unterminated quoted string

####then fix and recheck:
# init-checkconf /etc/init/test.conf
File /etc/init/test.conf: syntax ok

####then reload:
# initctl reload-configuration

#### and start:
# start test
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.