이제 우분투의 답변을 살펴 보겠습니다.

이제 우분투의 답변을 살펴 보겠습니다.

Ubuntu의 vagrant box에서 시작할 때 내 스크립트가 실행되지 않습니다.

내 스크립트는 다음과 같습니다 -

#!/bin/bash
# /etc/init.d/mailcatcher
### BEGIN INIT INFO
# Provides: scriptname
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
mailcatcher --http-ip 192.168.50.10

파일에 대한 내 권한은 다음과 같습니다.

-rwxr-xr-x 1 root root 352 Apr 30 09:59 mailcatcher.sh

나는 명령을 실행합니다 -

sudo update-rc.d "mailcatcher.sh" defaults

스크립트를 수동으로 실행하면 작동하고 메일캐처가 시작됩니다. 컴퓨터를 다시 시작하면 mailcatcher 데몬이 시작되지 않습니다. 내가 뭐 놓친 거 없니?

답변1

이제 우분투의 답변을 살펴 보겠습니다.

이것은 Ubuntu Linux 문제입니다. 이제 버전 15가 출시되었습니다. 우분투 세계는 이제 시스템화되었습니다. 그러나 버전 15 이전에도 우분투 세계에는 새로운 스타트업이 있었습니다. System 5 rc스크립트를 작성할 이유가 전혀 없습니다 .시작거기에서.

upstart와 systemd는 모두 모든 "서비스 제어"를 담당합니다. 당신이해야 할 일은서비스 설명.

체계

배치할 시스템 서비스 단위는 /etc/systemd/system/mailcatcher.service다음과 같습니다.

[단위]
설명=루비 메일캐쳐
문서=http://mailcatcher.me/

[제공하다]
# 우분투/데비안 규칙:
환경 파일=-/etc/default/mailcatcher
유형=단순
ExecStart=/usr/bin/mailcatcher --foreground --http-ip 192.168.50.10

[설치하다]
WantedBy=다중 사용자.대상

이는 자동으로 모든 시스템 컨트롤 중 하나를 가져옵니다. 예를 들면 다음과 같습니다.

  • systemctl enable mailcatcher.service부팅 시 서비스가 자동으로 시작되도록 설정합니다.
  • systemctl preset mailcatcher.service로컬 정책에서 허용하는 경우 부팅 시 서비스가 자동으로 시작되도록 설정하세요.
  • systemctl start mailcatcher.service서비스를 수동으로 시작하십시오.
  • systemctl status mailcatcher.service서비스 상태를 봅니다.

갑자기 나타나다

Upstart는 유사하며 Fdeloper LLC의 upstart 작업 파일을 문제에 맞게 수정하면 다음과 같은 결과가 나타납니다 /etc/init/mailcatcher.conf.

설명 "메일 캐처"

런레벨로 시작하세요 [2345]
실행 수준에서 중지되었습니다.

갱생

/usr/bin/mailcatcher --foreground --http-ip=192.168.50.10 실행

그러면 자동으로 모든 시작 제어 중 하나가 제공됩니다. 예를 들면 다음과 같습니다.

  • initctl start mailcatcher서비스를 수동으로 시작하십시오.
  • initctl status mailcatcher서비스 상태를 봅니다.

보너스 daemontools 섹션

단지 재미로, WWW 검색을 통해 여기에 도달한 daemontools 제품군의 모든 사용자를 즐겁게 하고 rc스크립트가 System 5에서 시작하지 않는 또 다른 이유를 보여주기 위해 systemd 서비스 장치를 다음과 같이 실행했습니다.nosh 도구 세트 convert-systemd-units이 명령은 다음 daemontools 제품군 실행 스크립트를 생성합니다.

#!/빈/노쉬
#./mailcatcher.service에서 생성된 파일을 실행합니다.
#RubyMailCatcher
chdir/
읽기-conf --oknofile /etc/default/mailcatcher
/usr/bin/mailcatcher --foreground --http-ip 192.168.50.10

실제로 convert-systemd-units이 명령은 완전한 nosh를 생성합니다.서비스 패키지목차. /var/sv/mailcatchernosh 를 사용하여 시스템에 설치할 때 이 디렉터리(종속성 지정 및 정보 정렬)를 통해 service-manager모든 nosh 컨트롤을 얻을 수 있습니다 . 예:

  • system-control enable mailcatcher.service부팅 시 서비스가 자동으로 시작되도록 설정합니다.
  • system-control start mailcatcher.service서비스를 수동으로 시작하십시오.
  • system-control status mailcatcher.service서비스 상태를 봅니다.
  • system-control preset mailcatcher.service/etc/rc.conf{,.local}로컬 구성(시스템 스타일 사전 설정 또는)에서 허용하는 경우 부팅 시 서비스가 자동으로 시작되도록 설정합니다.

심지어시작시스템 5 rc파일로.

보고 있다이 템플릿rcSaltStack은 System 5 스크립트 에 사용됩니다 . SaltStack 매개변수화를 제거하더라도 여전히 59줄의 쉘 스크립트 코드가 남게 되며, 그 중 대부분은 다시 만들고 다시 작성해야 하는 일반 상용구입니다. 다시. Serada는 당신이 그것을 재창조한 부분을 지적했습니다.

시스템 단위 파일의 길이는 11줄입니다. 시작 작업 파일에는 8줄이 있습니다. nosh run스크립트는 6입니다. 그들은 당신을 위해 모든 시작/중지/상태 메커니즘을 수행합니다. rc특히 Ubuntu Linux에서는 System V로 시작하지 마십시오 .

추가 읽기

답변2

부팅 중에 명령을 실행할 때 반드시 명령 환경에 액세스할 필요는 없습니다. 명령의 정규화된 이름을 사용해야 합니다.

시작시 작동하지 않습니다

mailcatcher --http-ip 192.168.50.10

시작 시 작동

/usr/bin/mailcatcher --http-ip 192.168.50.10

내 스크립트는 지금 작동하지만 나중에 작업을 시작하고 중지할 수 있도록 서비스 제어를 추가할 계획입니다.

관련 정보