권한이 없는 사용자로 데몬 실행

권한이 없는 사용자로 데몬 실행

Ubuntu VPS에 Thin Ruby 애플리케이션 서버를 설정하려고 합니다. 특정 계정을 만들고 그 아래에 rbenv와 모든 gem을 설치했습니다.

나는 다음 목표를 달성하기 위한 편리한 방법을 찾고 있습니다.

  1. 권한이 없는 사용자 계정으로 Thin Rack 애플리케이션을 실행합니다.
  2. 애플리케이션을 데몬으로 실행하도록 설정
  3. 시스템 시작 시 데몬이 자동으로 실행되도록 합니다.
  4. 데몬 프로세스를 다시 시작 가능하게 만들기
  5. Unix 도메인 소켓을 통해 애플리케이션에 액세스하려면 Nginx를 활성화하세요.

목표 2와 3이 가장 까다롭습니다. 시스템이 시작될 때 해당 사용자로 실행되도록 사용자에 대한 스크립트를 정의할 수 있습니까?

답변1

부팅 시 시작하려면 사용자 crontab 파일에 다음 줄을 추가합니다( 사용 crontab -e).

매개변수가 있는 @reboot /path/to/your/script

스크립트의 실제 내용은 필요에 따라 달라집니다. 단순히 데몬을 시작할 수도 있고 구성을 전달하는 더 똑똑한 에이전트를 시작할 수도 있습니다. 이렇게 하면 어떤 이유로 인해 서비스가 예기치 않게 종료된 경우 서비스를 자동으로 다시 시작할 수 있습니다.

답변2

배포판의 시작 스크립트 템플릿을 조정하기만 하면 됩니다. 나는 모든 사람이 그러한 템플릿을 가지고 있다고 믿습니다.

systemd를 사용하는 경우 단위 파일에서 사용할 사용자를 지정할 수 있습니다.

이전 init 스크립트를 사용하는 경우 스크립트는 startproc또는 를 사용할 수 있습니다 start_daemon. 이러한 래퍼에 매개변수를 추가하여 사용자 ID를 구성할 수 있습니다.

또는 프로그램을 SUID(루트가 아닌 대상 사용자)로 설정하고 실행 권한을 신뢰할 수 있는 사용자(또는 루트만)로 제한합니다.

관련 정보