Làm cách nào để chạy Firefox trên CentOS mà không hiển thị? [đóng cửa]


16

Tôi đang cố chạy trình duyệt GUI Firefox trên máy chủ CentOS không đầu để thực hiện một số thử nghiệm web.

Tôi không cần phải xem đầu ra đồ họa, vì tôi sử dụng API máy chủ Selenium để kiểm soát đầu vào của trình duyệt và kiểm tra đầu ra.

Thiết lập đã được thử nghiệm thành công trên máy tính Mac để bàn. Tuy nhiên, nó không chạy được trên máy chủ VPS CentOS không đầu của tôi với thông báo sau "Lỗi: không hiển thị được chỉ định." (Điều này có ý nghĩa, vì nó chỉ là một máy chủ ngồi trên giá ở đâu đó.)

Làm cách nào tôi có thể chạy Firefox mà không cần màn hình, vì vậy Selenium sẽ có thể tương tác với nó? Hoặc - rộng hơn - làm thế nào để mọi người chạy các ứng dụng chỉ GUI trên máy chủ Linux khi không có màn hình?

Tôi đã nhận thấy rằng Firefox có tùy chọn dòng lệnh này:

X11 options
  --display=DISPLAY  X display to use

Thật không may, tôi không biết gì về X11 hoặc hiển thị trong CentOS vì vậy tôi không biết phải chỉ định gì trên dòng lệnh hoặc nếu điều này có ích.


4
Tôi thấy rất kỳ lạ khi một câu hỏi đã được gắn dấu sao 13 lần được đóng lại là "quá cục bộ".
khắc nghiệt

1
Chính xác, tôi đang có vấn đề tương tự và cả câu hỏi và câu trả lời đều có lợi cho tôi. Nó chắc chắn nên được mở lại trong trường hợp ai đó tìm thấy một giải pháp khác.
Marek Rost

Câu trả lời:


18

Sử dụng Xvfb. Nó cung cấp cho bạn một máy chủ X không yêu cầu kết nối với màn hình vật lý.

(Vì vậy, trên CentOS, bạn sẽ làm một cái gì đó như "yum install xorg-x11-server-Xvfb".)

Sau đó, bạn có thể khởi động nó trên màn hình ": 1" bằng lệnh "/ path / on / which / install / Xvfb: 1 -screen 0 1024x768x24 &". Điều này sẽ tạo ra một màn hình với độ phân giải 1027x768 và độ sâu 24. Sử dụng "&" sẽ làm cho lệnh thực thi trong nền.

Trước khi khởi chạy Firefox, bạn cần làm cho màn hình có thể truy cập được, được thực hiện bằng lệnh Xuất - tức là. "Xuất HIỂN THỊ =: 1", chỉ vào bất kỳ máy chủ nào phù hợp.


Ồ Cảm ơn! Điều đó hoạt động-- mặc dù tôi nhận được TẤN các thông báo lỗi lạ từ màn hình. Tôi sẽ đăng một câu hỏi mới về những điều đó. Tóm lại, mặc dù có tin nhắn, nó vẫn hoạt động và trả lại dữ liệu tôi cần. Cảm ơn bạn rất nhiều, đây chỉ là sự giúp đỡ tôi cần.
Eric

Nhân tiện-- làm thế nào tôi có thể "tắt" màn hình Xvfb khi tôi hoàn thành mọi thứ?
Eric

Bạn sẽ có thể chỉ cần giết quá trình. Nếu bạn muốn tinh vi hơn, bạn có thể xem xét việc thiết lập các tập lệnh start / stop (nếu gói không cung cấp nó; có thể: tìm trong /etc/init.d cho bất kỳ tập lệnh xvfb nào).
cjc

1
Hiểu rồi, cảm ơn. Tôi đã đăng một câu hỏi tiếp theo liên quan đến thông báo lỗi / thông tin mà tôi đang thấy, trong trường hợp bạn đang tìm kiếm nhiều điểm danh tiếng hơn :-) serverfault.com/questions/363914/
Eric

Câu trả lời này là đúng nhưng bạn PHẢI ghi nhớ rằng exportlệnh PHẢI được đặt trên cùng một phiên cuối cùng với thiết bị đầu cuối mà bạn sẽ chạy firefox của mình
TuyênNTA
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.