Hi all, mình có câu hỏi hơi thiên về hệ thống một chút.
Như bình thường thì mọi ứng dụng chạy trên server đều sẽ có một file pid. Nhưng hiện tại mình đang có ứng dụng chạy trên Docker và vẫn chưa có giải pháp để lấy được file pid. Có ai đã từng làm qua hoặc có giải pháp nào thì cho mình xin ý kiến. Mình cảm ơn!
#edit: mục đích của mình là giám sát (xem trạng thái sống chết, bật, tắt, restart) nhiều ứng dụng trên nhiều server khác nhau thông qua một hệ thống tập trung, quản lý qua giao diện web, và cần giám sát được thì mình cần file pid này!
Lấy pid của ứng dụng chạy trên Docker
bạn nên nói mục đích của bạn khi muốn làm việc này là gì để mọi người thảo luận giải pháp
còn bình thường thì chẳng ai làm cái chuyện đó cả
mình đang có một hệ thống giám sát các phần mềm, phần cứng trên server, giám sát bằng pid (để xem nó sống chết ra sao). Tuy nhiên mỗi module lại do một người đảm nhiệm, có một vài module thì sử dụng docker nên không có file pid
có biết nó chạy trên port nào không biết, và HDH là gì, nếu là linux:
netstat -plnt | grep "8081"
tcp6 0 0 :::8081 :::* LISTEN 3454975/java
cái cuối là pid
cảm ơn bạn, tuy nhiên cái mình cần là file pid (ví dụ mysql.pid) và mình cấu hình theo path đến file pid này, vì số pid này không thể fix cứng được, có trường hợp kill đi rồi start lại thì sẽ thay đổi pid!
Nghĩa là cái bạn cần là file pid để tiện cho hệ thống stop cái ứng dụng lại đúng không?
mình cần lấy để theo dõi nó, cũng có thể là bật, tắt, restart nó (thông qua giao diện web), gần như là remote vậy
Này nhiều khi cần phải code để lấy cái pid đó ra trước, cơ mà nếu dùng docker thì nên dùng bộ tool của nó để làm viết này(docker command). đỡ nguy hiểm.
Hoặc thử start docker với lệnh này:
[comand] & echo "$!" > pid/abc.pid
để lưu pid lại
Hm, nếu vậy cậu không cần pid đâu.
Khi ứng dụng chạy trên docker container, việc biết pid của docker không có tác dụng gì (trừ khi cậu muốn monitor docker daemon bị crash hay không).
Mặt khác, biết pid của app trong container cũng không có tác dụng, vì:
- Cậu phải vào trong container để lấy pid, và restart trong container.
- Nếu app trong container bị crash, container sẽ bị tắt luôn => không có cơ hội để cậu restart app trong container.
Thường thì nếu app trong container bị crash, cậu chỉ cần tạo container mới là xong, và việc bật tắt này thường do cloud đảm nhiệm rồi mà (trừ khi app của cậu không được deploy trên cloud, nếu vậy tớ cần cậu mô tả thêm tí, như app đó là app gì).
mấy cái này thì quản lí bằng docker cli là được rồi
khi tạo container thì gán cho nó cái name và quản lý nó bằng docker cli là xong, cli của docker có đủ mấy cái operation đó mà
ở mức của os bạn chỉ tác động đến docker container bằng docker cli mà thôi
mình chưa thấy ai có ý tưởng giống như bạn cả, nhưng bạn cứ try hard đi, cũng không có mất mát gì