서비스 명령에서 사용자 정의 시작 작업 이름 탭이 완료되지 않는 이유는 무엇입니까?


16

파일을 사용하여 시작 서비스를 만드는 데 익숙했으며 /etc/init/<service>.conf완벽하게 작동합니다. 내가 원하는 유일한 것은 /etc/init.d/의 모든 서비스가 현재 가지고있는 것과 같은 방식으로 탭 완성을하는 것입니다.

sudo service xx를 작성할 때 서비스 이름이 나타납니다.

해당 자동 완성 목록에 시작 서비스를 추가하는 방법이 있습니까?


안녕, 당신은 전에 시도 했습니까?
rɑːdʒɑ

답변:


25

/etc/init.d데비안 정책 에 의해 심볼릭 링크를 제공하려면 upstart를 사용하여 표준 데몬을 제공하는 모든 패키지가 필요합니다 . 따라서 자동 완성은 이미 작동합니다. 문제가있는 경우 패키지가 설치되어 있는지 확인하십시오 .sudo service namebash-completion

고유 한 시작 작업을 작성중인 경우 다른 시작 작업과 비슷한 symlink 가 이미 수행 중입니다. 이렇게하면 자신의 작업이 같은 방식으로 작동합니다./etc/init.d/your_job/lib/init/upstart-job

/etc/init에 해당 항목이없는 특수한 시작 ​​작업이 있습니다 /etc/init.d. 이것들은 예외입니다. 데비안 정책에서 :

이 규칙의 예외는 init 구현 자체가 제공하는 스크립트 또는 작업입니다. 이러한 작업은 /etc/rcS.d/ 스크립트와 동등한 구현 특정에 필요할 수 있으며 init 스크립트와 일대일로 일치하지 않을 수 있습니다.

이러한 예외는 현재 작동하지 않습니다 bash-completion. 그러나, 당신이 사용할 수있는 start, stop, restartreload직접하지 않고 service, 및 자동 완성 작동합니다. 예를 들어, sudo start shut올바르게 자동 완성됩니다. 그러나 일반적으로 해당 init.d항목 이없는 시작 작업을 직접 호출 할 필요는 없습니다 .

참고 : 나는 이것을 Saucy에서 테스트했습니다. 이전 릴리스에서 지원이 나타나지 않으면 지원되지 않을 수 있습니다 (그러나 새 릴리스로 업그레이드하면 곧 지원을받을 수 있습니다).


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