2014-07-03 16 views
5

Tôi đang cố gắng thiết lập runit và đăng nhập vào máy ảo debian của tôi. Cho đến nay tôi đã quản lý để nhận được dịch vụ gunicorn để bắt đầu bằng cách làm theo thiết lập này:runit: không thể khóa lỗi giám sát trên debian

sudo mkdir /etc/sv/gunicorn 
sudo vi /etc/sv/gunicorn/run 
sudo ln -s /etc/sv/gunicorn/run /etc/service 

My log file chạy có:

LOG_DIR=/home/$USER/logs/gunicorn/ 

exec svlogd -tt $LOG_DIR 

Khi tôi chạy sudo runsvdir/etc/dịch vụ/gunicorn

runsv supervise: fatal: unable to lock supervise/lock: temporary failure 

Không biết tôi đang làm gì sai, bất kỳ con trỏ nào?

Trả lời

2

Bạn có chắc chắn rằng quy trình trước đó đã tắt hoàn toàn không? Bạn có thể cần phải tìm và xóa tệp .lock hoặc .pid cho hệ thống biết rằng nó đang được sử dụng bởi một quy trình khác

4

Trong ls -la /etc/service/gunicorn/supervise tôi không thấy .lock nhưng có một tệp lock. Việc xóa tệp khóa đó gây ra một chút tình trạng lộn xộn.

Vì vậy, tôi đã loại bỏ liên kết tượng trưng; đã giết các pids trong ps aux | grep gunicorn và được liên kết lại với nhau. Có thể là kết thúc cuối cùng, nhưng thực hiện công việc.

0

Điều này có thể được gây ra bởi runit daemon đang bị dừng trong khi các dịch vụ riêng lẻ vẫn đang chạy.

Thay vì xóa & tái tạo symlinks cho dịch vụ runit:

sv stop myservice 
rm /etc/sv/myservice/supervise/lock 
sv start myservice # or start the runit service 

Trong trường hợp cụ thể của bạn của bạn symlink không đúng & nên là:

ln -s /etc/sv/gunicorn /etc/service/gunicorn 

Bạn nên symlinking thư mục sv không phải tệp run vào /etc/service/myservice

Các vấn đề liên quan