Làm thế nào để chạy các chương trình từ một thiết bị đầu cuối linux mà không chặn thiết bị đầu cuối?


34

Khi tôi khởi động chương trình từ thiết bị đầu cuối, tôi không thể sử dụng lại phiên bản thiết bị đầu cuối đó cho đến khi tôi đóng chương trình.

Có cách nào để thực thi chương trình / ứng dụng từ thiết bị đầu cuối mà không chặn thiết bị đầu cuối cho đến khi chương trình kết thúc không?

Câu trả lời:


62

Bạn đang tìm kiếm kiểm soát công việc được hỗ trợ bởi hầu hết các shell. Xem bài viết này để giới thiệu. Tại một số điểm bạn cũng có thể muốn đọc tài liệu chính thức cho bash là shell mặc định trong Ubuntu.

Tóm lại: Để bắt đầu một công việc tự động trong nền, hãy đặt &sau cuộc gọi chương trình

$ program &

Bạn cũng có thể dừng các chương trình với CTRLzvà sau đó đặt chúng vào nền sau vớibg

$ program
^Z
$ bg

Để có được chúng chạy trong nền trước một lần nữa sử dụng fg.


Phát hiện ra rằng có tài liệu chính thức cho bash là một trợ giúp lớn thứ hai tôi nhận được từ câu trả lời này, cảm ơn!
Bổ sung

1

Nếu kiểm soát công việc không chính xác những gì bạn muốn, hãy nhìn vào màn hình .

Màn hình điều khiển nhiều thiết bị đầu cuối ảo để bạn có thể chạy nhiều chương trình mà không cần chúng tương tác với nhau. Ví dụ: bạn có thể chạy đồng thời mocp (trình phát nhạc), aptitude (trình quản lý gói) và vim (trình chỉnh sửa văn bản), mặc dù tất cả đều là các chương trình tương tác xử lý thiết bị đầu cuối như thể chúng có quyền truy cập duy nhất.

Điều này giúp bạn dễ dàng chuyển từ nhiệm vụ này sang nhiệm vụ khác, chẳng hạn như tạo một thiết bị đầu cuối mới trong màn hình để đọc một trang chủ - mà không mất vị trí của bạn ở nơi khác - lật qua lại, v.v.


1

Trong Ubuntu 16.10, tôi không thể sử dụng điều ctrl + Z được đề cập trong câu trả lời khác để làm việc, nhưng

program &
^C

Nói cách khác, có hiệu quả với tôi không, ctrl + csau khi bạn bắt đầu chương trình với một dấu và.

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.