Apache Superset을 Systemd 서비스로 설정

Apache Superset을 Systemd 서비스로 설정

Apache Superset을 설정하고 구성했지만 Systemd 서비스로 실행할 수 없습니다.

virtualenv에서 설정하고 systemd를 사용해 보았습니다.이것, 하지만 여전히 Gunicorn을 사용할 수 없고 장치가 부팅되지 않는다는 오류가 발생합니다.

또한 Superset에 대한 별도의 사용자를 생성하고 Superset 및 해당 종속 항목을 설치해 보았습니다. pip install --user단위는 다음과 같습니다.

[Unit]
Description=Superset
After=syslog.target network.target

[Service]
User=superset
ExecStart=/home/superset/.local/bin/superset runserver

[Install]
WantedBy=multi-user.target

하지만 여전히 작동하지 않습니다. 일기를 보고

Jul 13 22:54:21 radioactive-man systemd[1]: Started Superset.
Jul 13 22:54:23 radioactive-man superset[24023]: 2018-07-13 22:54:23,893:INFO:root:The Gunicorn 'superset runserver' command is deprecated. Please use the 'gunicorn' command instead.
Jul 13 22:54:23 radioactive-man superset[24023]: /bin/sh: 1: gunicorn: not found
Jul 13 22:54:23 radioactive-man superset[24023]: Starting server with command:
Jul 13 22:54:23 radioactive-man superset[24023]: gunicorn -w 2 --timeout 60 -b  0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app
Jul 13 22:54:23 radioactive-man superset[24023]:

Bash에서 명령을 실행하면 훌륭하게 작동합니다.

환경정보

우분투리눅스 16.04

슈퍼그룹 0.26.3

답변1

$PATH대부분의 경우 시스템에 파일이 있는데 파일을 찾을 수 없다는 오류 메시지가 표시되면 운영 체제가 환경 변수에서 파일을 찾을 수 없다는 의미입니다.

운영 체제가 이를 찾을 수 있도록 하는 가장 쉬운 방법 gunicorn은 콘텐츠를 기본 경로에 넣는 것입니다 gunicorn./usr/local/bin

경로에 해당 위치를 추가하는 것은 활성 세션에서만 고려되며, 일단 닫으면 /etc/environment파일에 저장하고 다시 시작하지 않는 한 사라집니다.

서비스 환경을 구성할 수도 있습니다.

  • 아래에 디렉터리를 만듭니다./etc/systemd/system/<service_name>.service.d
  • 새로 생성된 디렉터리에 파일을 생성하고 다음과 같이 서비스 환경을 구성합니다.

    $ vim /etc/systemd/system/<service_name>.service.d/file.conf
    
    [Service]
    Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/path_to_directory_containing_gunicorn
    

    Esc:wq

참고: 우리가 추가한 파일은 쉘 스크립트가 아니기 때문에 변수 확장은 지원되지 않습니다.

PATH=$PATH:/path_to_directory_having_gunicorn 작성예상대로 작동하지 않습니다

  • 재장전 장치 구성

    $ systemctl daemon-reload
    

관련 정보