runit - không thể mở giám sát / ok: tập tin không tồn tại


8

Tôi đang cố gắng tìm hiểu tại sao runit sẽ không khởi động hoặc cho tôi trạng thái cho các ứng dụng được quản lý. Chạy trên Ubuntu 12.04.

Tôi đã tạo / dịch vụ, / etc / sv / myapp (với tập lệnh chạy, tệp cấu hình, thư mục nhật ký và tập lệnh chạy bên trong nó). Tôi tạo một liên kết tượng trưng từ / service / đến / etc / sv / myapp

Khi tôi chạy

sudo sv s /service/*

Tôi nhận được thông báo lỗi sau:

warning: /service/myapp: unable to open supervice/ok: file does not exist

Một số Google của tôi tiết lộ rằng được cho là khởi động lại dịch vụ svscan có thể khắc phục điều này, nhưng việc giết nó và chạy svscanboot không tạo ra sự khác biệt.

Bất kỳ đề xuất? Tôi có thiếu một bước ở đây không?

Câu trả lời:


4

Trong trường hợp của tôi, tôi đã xóa khóapid khỏi cấu hình dịch vụ sau khi dừng dịch vụ:

# stops the service 
sv down serviceName

# deletes the 'pid' and 'lock' files
find -L /etc/service/serviceName -type f \( -name "pid" -o -name "lock" \) -delete

# starts the service
sv up serviceName

# verify service status
sv s serviceName

Tôi phải mất một thời gian để tìm ra giải pháp, vì vậy tôi hy vọng nó sẽ giúp được người khác.


2
Cảm ơn câu trả lời. Tôi cũng đã học được rằng chúng ta không thể thêm dịch vụ đăng nhập sau khi dịch vụ được cài đặt vào / etc / service. Không có số lượng khởi động lại hoạt động. Do đó, chúng tôi cũng có thể dừng dịch vụ, xóa symlink khỏi / etc / service và liên kết lại symlink.
Tanin

Không biết rằng
alfredocambera


2

Nếu bạn đang chạy Ubuntu 18.04 trở lên và gặp lỗi sau

không thể mở giám sát / ok: tập tin không tồn tại

hoặc nếu ranvdir không hiển thị trong đầu ra "grep" thì vui lòng gói runit-systemd bằng cách chạy lệnh sau

sudo apt install runit-systemd

Đối với Ubuntu 18.04, tất cả các câu trả lời được chỉ định ở trên không hoạt động với tôi. Sau đó tôi đã tìm thấy giải pháp này từ một câu hỏi khác của Ubuntu

Tôi hi vọng cái này giúp được


1
sudo runsv /service/run/ &

Sau đó

sudo sv  start /service/run/

hoặc là

sudo sv  up /service/run/

0

Runit cũng gặp sự cố khi bắt đầu khi một dịch vụ được liên kết với một thư mục được gắn trên một hệ thống tệp khác thông qua LVM. Ví dụ,

$ readlink -f /etc/service/my-service
/opt/my-service

$ mount
...
/dev/mapper/lvm--local-opt on /opt type ext4 (...)

$ sv once my-service
warning: my-service: unable to open supervise/ok: file does not exist

Phương pháp khả thi:

  • Ngắt kết nối hệ thống tập tin từ LVM
    umount /opt; lvremove /dev/mapper/lvm--local-opt
  • Di chuyển dịch vụ runit đến một vị trí tốt hơn
    update-service --remove /opt/my-service; mv /opt/my-service /etc/sv; update-service --add /etc/sv/my-service
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.