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