Mở nhiều Thiết bị đầu cuối có tên không có GUI (startx)


12

Tôi không biết nếu tiêu đề là tự giải thích, nhưng tôi muốn có nhiều thiết bị đầu cuối (hai cái bây giờ sẽ là đủ) mà không cần phải khởi động Desktop.

Tôi muốn có một đoạn mã PHP chạy (toàn thời gian) và vẫn có thể sử dụng thiết bị đầu cuối Raspi của mình như khi tôi khởi động Raspi của mình với Raspbian.


bạn ssh hoặc kết nối trực tiếp với pi của bạn?
SteveIrwin

Câu trả lời:


8

Chỉ cần sử dụng Alt + F1-F12, do đó bạn có thể có 12 tab bảng điều khiển khác nhau mà không cần khởi động GUI


đây thực sự là tùy chọn tôi hiện đang sử dụng :)
pasadinhas

1
Điều này không hoạt động trên Raspbian, không có thông tin đăng nhập trên bất kỳ ttys nào khác.
AndreKR

9

Nếu bạn đang ở trên bàn điều khiển (bàn phím và màn hình kèm theo), bạn có thể sử dụng hệ thống bàn điều khiển ảo Linux để chuyển đổi giữa nhiều thiết bị đầu cuối bằng cách sử dụng (ctrl-) alt-F1 đến F12 và hơn thế nữa bằng cách thay đổi.

Số lượng thiết bị đầu cuối cấu hình và số trong số họ có getty quá trình (yêu cầu bạn để đăng nhập và mật khẩu) phụ thuộc vào cấu hình .


2
+1 vì khi được kết nối trực tiếp với máy, đây là cách "chuẩn" để có được thông tin đăng nhập khác và không yêu cầu cài đặt màn hình / tmux ..
Kiirani

6

Thậm chí tốt hơn screenlà (theo ý kiến ​​của tôi) tmux. Bạn có thể cài đặt nó thông qua sudo apt-get install tmux. Ngoài ra kiểm tra trang web với man tmux.

Bạn có thể bắt đầu nó bằng cách gõ tmuxvào một trong các bảng điều khiển của bạn (xem câu trả lời của XTL).

Dưới đây là các lệnh quan trọng nhất ( C-b dcó nghĩa là: nhấn control và B cùng lúc, sau đó nhấn D):

  • C-b d tách phiên
  • tmux attach trên shell để đính kèm lại một phiên chạy
  • C-b " chia khung hình hiện tại theo chiều ngang (vỏ mới được bắt đầu)
  • C-b % tách khung hiện tại theo chiều dọc (vỏ mới được bắt đầu)
  • C-b arrow (up, down, left, right) điều hướng giữa các cửa sổ trong khung hiện tại
  • C-b c khung mới (vỏ mới được bắt đầu)
  • C-b n Khung tiếp theo
  • C-b l khung cuối cùng
  • C-b bgửi C-bđến ứng dụng đang chạy

Người ủng hộ mạnh mẽ cho tmux ở đây, quá. Cấu hình dòng trạng thái đơn giản hơn nhiều và nó xử lý vẽ lại tốt hơn.

1
Cần lưu ý rằng tmux không có hành vi tương tự như màn hình liên quan đến việc gắn phiên với nhiều VT ("màn hình -x")
Kiirani

3

Bạn có thể làm điều này với màn hình cũng. Với màn hình, bạn thậm chí có thể tách ra khỏi phiên màn hình, đăng xuất, đăng nhập, sau đó gắn lại vào phiên màn hình của bạn mà không mất bất cứ điều gì. Các chương trình sẽ tiếp tục chạy và tất cả đầu ra sẽ tiếp tục được hiển thị trên các thiết bị đầu cuối mà bạn đã ngắt kết nối.

Một vài liên kết đến các hướng dẫn trên màn hình:

http://www.rackaid.com/resource/linux-screen-tutorial-and-how-to/

http://magazine.redhat.com/2007/09/27/a-guide-to-gnu-screen/

Một liên kết đến một chủ đề với một số mẹo .screenrc hữu ích:

https://bbs.archlinux.org/viewtopic.php?id=55618

Hướng dẫn cụ thể về Raspberry Pi:

http://raspi.tv/2012/USE-screen-with-raspberry-pi-to-avoid-leaving-ssh-simes-open


3
  1. Nếu tập lệnh php bạn muốn chạy không tương tác với người dùng hoặc cần nhập liệu,

    bạn có thể sử dụng &lệnh gửi tập lệnh tới nền

    Đây là một ví dụ.

    pi@raspberrypi ~ $php code1 &
    

    Điều này sẽ gửi tập lệnh đến nền nơi nó sẽ tiếp tục chạy.

  2. Nếu bạn ssh vào thiết bị đầu cuối của bạn, thì bạn có thể ssh trong cùng một người dùng hai lần và có hai thiết bị đầu cuối.

  3. Nếu bạn muốn mở nhiều thiết bị đầu cuối từ một phiên ssh,

    Bạn nên nhìn vào màn hình hoặc thậm chí cài đặt tốt hơn byobuđó là một trình bao bọc xung quanh màn hình.

    byobu là một trình bao bọc cho phép dễ dàng mở các màn hình mới bằng một phím chức năng đơn giản thay vì tổ hợp phím từ ctrl-a. Nó cũng hiển thị một dòng trạng thái với tất cả các thiết bị đầu cuối ảo mở có thể được đặt tên.

    Một tính năng hay khác là tất cả màn hình của bạn có thể ở lại trong khi kết nối ssh của bạn bị ngắt kết nối. Bạn chỉ cần kết nối lại thông qua ssh và gọi byobu và mọi thứ vẫn như trước.

Hy vọng nó giúp.


2

Để hoàn thiện, một tùy chọn khác là sử dụng byobu . Đây là một lớp thuận tiện trên màn hình GNU . Nó cung cấp các mặc định đẹp và theo nghĩa của tôi dễ sử dụng hơn. Cá nhân tôi sử dụng nó trên Rapsberry Pi của tôi và nó hoạt động tốt. Để cài đặt nó, chỉ cần gõ:

$ sudo apt-get install byobu

Sau khi cài đặt, cấu hình nó thông qua:

$ byobu-config

Bạn có thể chọn tự động khởi động khi đăng nhập và chuyển đổi các applet thông báo trạng thái ( thời gian hoạt động, tải, ngày ... )

nhập mô tả hình ảnh ở đây

Một lưu ý phụ, loại bàn điều khiển ảo này cũng hữu ích để chia sẻ cùng một đầu vào / đầu ra của bàn điều khiển giữa những người dùng khác nhau trên các máy khác nhau (bạn có thể gọi nó là chia sẻ màn hình chế độ văn bản ).


Tôi đã thử byobou vào một ngày khác và không vui. Việc điều khiển thông qua các phím chức năng rất dễ bị hỏng. Không hoạt động trên OS X, cũng gặp vấn đề khi sử dụng Debian. Tôi sẽ gắn bó với tmux và các lệnh của nó. Các phím chức năng cũng va chạm với mc (chỉ huy nửa đêm).
Arne

Đối với xung đột phím chức năng với mc , bạn có thể thay đổi chúng trên byobu (bạn có thể dễ dàng chọn giữa hai chế độ khác nhau thông qua byobu-config).
Laurent Grégoire

2

Vì yêu cầu ban đầu của bạn là khởi chạy một tập lệnh PHP trong nền, nên bạn có thể sử dụng lệnh nohup. Thí dụ:

$ nohup php myscript.php &

Khi được khởi động, lệnh được chỉ định làm đối số dòng lệnh nohupđược thực thi trong nền và đầu vào / đầu ra của nó không được liên kết với thiết bị đầu cuối đã khởi động nó, để ngăn SIGHUPtín hiệu (do đó nohuptên) được gửi đến quá trình nền khi bạn thoát khỏi bảng điều khiển bắt đầu (tín hiệu thường khiến chương trình thoát). Đầu ra được chuyển hướng đến một tập tin (mặc định nohup.out).

Để biết thêm thông tin : man nohup.

Để có câu trả lời tốt hơn và đầy đủ hơn, bạn có thể muốn "trình bày" đầy đủ chương trình của mình. Bạn có thể có thể tìm thấy các tài nguyên trên web giải thích cách thực hiện với các tập lệnh PHP.


Một số shell (bash, zsh?) Cũng có lệnh disownngăn chặn treo các quá trình nền được chọn.
XtL
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.