![가상 환경을 시작하고 활성화하기 위한 systemd 스크립트가 적용되지 않습니다.](https://linux55.com/image/15281/%EA%B0%80%EC%83%81%20%ED%99%98%EA%B2%BD%EC%9D%84%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B3%A0%20%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%9C%20systemd%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%EC%A0%81%EC%9A%A9%EB%90%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
플라스크 애플리케이션을 시스템화하려고 합니다. 나는 다음과 같은 스크립트를 작성하려고 합니다.
#!/bin/bash
cd /path/to/app
source venv/bin/activate
python start.py
.service 파일에서 이 스크립트를 실행하면 됩니다. 하지만 서비스를 시작할 때 오류가 발생하기 때문에 이것이 완전히 작동하지 않습니다.
파이썬: 명령을 찾을 수 없습니다
실제로 많은 문제가 있었지만 마침내 서비스 파일로 해결했습니다.
[Service]
WorkingDirectory=/path/to/app
ExecStart=/path/to/app/venv/bin/python start.py
그렇지 않은 경우 WorkingDirectory
정적 파일을 찾을 수 없기 때문에 파일 경로가 작동하지 않는 것 같습니다.
그래서 내 질문은 실제로 위 스크립트가 처음에 작동하지 않는 이유입니다. 적용됐는데 cd
venv가 활성화되어 있나요?
답변1
글쎄요, 저도 최근에 이 문제를 겪었는데, 빠른 해결을 위해 다음 코드를 입력했습니다.
#!/bin/bash
source venv/bin/activated
python start.py
bash 쉘 스크립트 xyz.sh
- 저는 에 있습니다 ExecStart
. 어쩌면 이것이 최선의 선택은 아닐 수도 있지만... 제 경우에는 작동합니다.
왜 이것이 작동하지 않습니까?
User
좋습니다. 및 Group
의 정의를 알고 싶습니다 [Service]
. 이것이 없으면 root
사용자를 사용하고 있는 것입니다...때때로 이것이 필요합니다(추가 환경 변수).