Di chuyển chương trình đang chạy sang nền trong bash


10

Nếu tôi đang chạy một chương trình trong bash, tôi có thể tạm dừng chương trình đó bằng cách nhấn Ctrl+ Z. Nếu tôi muốn để chương trình chạy, tôi có thể sử dụng bglệnh. Có một số cách để trực tiếp đặt chương trình trong nền, mà không cần phải gõ bg?

Làm rõ : Tôi muốn đặt chương trình ở chế độ nền khi chương trình đang chạy mà không cần tạm dừng chương trình.


2
Đây không phải là một bản sao. Tôi không muốn giữ một chương trình chạy khi cửa sổ terminal bị đóng và tôi không thể gõ một lệnh khác. Tôi muốn đặt một quá trình trong nền khi nó đang chạy.
Kalle Elmér

1
vâng, đây không phải là bản sao, vui lòng mở lại.
saji89

Cảm ơn tất cả những người đã giúp mở lại điều này .. @Kalle, Câu hỏi hiện đã được mở lại.
saji89

Cảm ơn rất nhiều! Để thực sự tìm ra câu trả lời cho câu hỏi, tôi đoán cách duy nhất là tạm dừng nó trước và sau đó làm nền cho nó.
Kalle Elmér

Câu trả lời:


4

Tôi không nghĩ có thể chuyển một chương trình đang chạy sang nền (trong khi quá trình vẫn ở trạng thái chạy).
Tuy nhiên, có một ứng dụng có tên GNU-Screen , sử dụng mà bạn có thể chạy bất kỳ số lượng ứng dụng dựa trên bảng điều khiển nào - trình vỏ lệnh tương tác, ứng dụng dựa trên lời nguyền, trình soạn thảo văn bản, v.v .-- trong một thiết bị đầu cuối.
Đây là một hướng dẫn tốt đẹp về GNU-Screen.
Lưu ý rằng nó không thực hiện chính xác những gì bạn yêu cầu, nhưng dù sao cũng phục vụ mục đích.
Ví dụ:
Đây là cách triển khai những gì bạn đã hỏi bằng GNU-Screen.

  1. Chạy screen
    Bạn sẽ nhận được thông tin chi tiết về phần mềm. Trả về.
  2. Bây giờ, bạn sẽ thấy thiết bị đầu cuối bình thường của mình. Tuy nhiên, đây là cửa sổ của màn hình. Nhập bất kỳ lệnh nào vlc. Nó sẽ bắt đầu quá trình trong cửa sổ đó.
  3. Bây giờ để mở loại cửa sổ mới Ctrl+ Avà sau đó C. Bạn có thể chạy một lệnh mới tại đây. Lưu ý rằng quá trình bạn đã bắt đầu trong cửa sổ 1 vẫn đang chạy.
  4. Để tách khỏi màn hình, nhấn Ctrl+ Avà sau đó D. Bây giờ bạn quay lại thuật ngữ cũ của mình. Tuy nhiên, bất kỳ quy trình nào bạn bắt đầu từ màn hình vẫn sẽ chạy.

4

Theo hiểu biết tốt nhất của tôi, bạn có thể chạy nó và sau đó nối thêm & sau nó như thế này:myprogram &

Tôi có thể rất sai ở đây tuy nhiên.

[EDIT]: Xem xét kỹ hơn về vấn đề này, nếu bạn chạy ở trên, ứng dụng sẽ đóng khi bạn đóng thiết bị đầu cuối. Nếu bạn muốn ứng dụng chạy trong nền, thì theo tôi biết, ứng dụng cần được viết theo cách hỗ trợ hành vi của daemon.

[EDIT 2]: nohup command & dường như gần với những gì bạn muốn đạt được. Nohup sẽ cho phép một ứng dụng chạy và cả hai sẽ bỏ qua đầu vào của nó và chuyển hướng đầu ra của nó sang một tệp được gọi nohup.outtrong thư mục hiện tại.


Tôi không thực sự quan tâm nếu nó đóng khi tôi đóng cửa sổ thiết bị đầu cuối. Tất cả những gì tôi đang tìm kiếm là một phím tắt trong bash hoạt động như Ctrl + Z nhưng sẽ giữ cho quá trình chạy ở chế độ nền, thay vì tạm dừng nó.
Kalle Elmér

0

Đây có thể không phải là một câu trả lời thực sự. Tôi tự hỏi sự khác biệt của Bash giữa Ubuntu với MSYS.

Tôi chạy MSYS và khi tôi chạy Application/Chrome &, nó ngay lập tức đi đến quá trình nền. Tôi có thể sử dụng bash MSYS khi dấu nhắc tiếp theo bắt đầu nhấp nháy.

Và câu hỏi này có phải Di chuyển chương trình đang chạy sang nền có ý định tương tự không?

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.