Làm thế nào để giữ cho các tiến trình chạy sau khi kết thúc phiên ssh?


Câu trả lời:


750

Bạn nên tìm kiếm sự thay thế hiện đại như thế nào tmux.

tmuxvượt trội hơn screenvì nhiều lý do, đây chỉ là một số ví dụ:

  • Windows có thể được di chuyển giữa phiên và thậm chí được liên kết với nhiều phiên
  • Windows có thể được chia theo chiều ngang và chiều dọc thành các ô
  • Hỗ trợ cho các thiết bị đầu cuối màu UTF-8 và 256
  • Phiên có thể được kiểm soát từ vỏ mà không cần phải nhập phiên

Chức năng cơ bản

Để có được chức năng tương tự như được giải thích trong câu trả lời khuyến nghị screen, bạn cần thực hiện như sau:

  • ssh vào máy từ xa
  • bắt đầu tmuxbằng cách gõ tmuxvào vỏ
  • bắt đầu quá trình bạn muốn trong tmuxphiên bắt đầu
  • rời / tách tmuxphiên bằng cách gõ Ctrl+ bvà sau đód

Bây giờ bạn có thể đăng xuất an toàn từ máy từ xa, quy trình của bạn sẽ tiếp tục chạy bên trong tmux. Khi bạn quay lại lần nữa và muốn kiểm tra trạng thái của quy trình, bạn có thể sử dụng tmux attachđể đính kèm vào tmuxphiên của mình .

Nếu bạn muốn có nhiều phiên chạy song song, bạn nên đặt tên cho mỗi phiên bằng Ctrl+ b$. Bạn có thể nhận danh sách các phiên hiện đang chạy bằng cách sử dụng tmux list-sessions, bây giờ đính kèm vào phiên đang chạy bằng lệnh tmux attach-session -t 0.

tmuxcó thể làm những việc cao cấp hơn nhiều so với xử lý một cửa sổ trong một phiên duy nhất. Để biết thêm thông tin, hãy xem man tmuxhoặc trang GmHub của tmux . Cụ thể, đây là một Câu hỏi thường gặp về sự khác biệt chính giữa screentmux.


4
@CraigM Sử dụng screen -x -r [screenname]hoặc screen -rxviết tắt nếu bạn chỉ có một phiên màn hình hoạt động. Điều này cho phép bạn đính kèm một phiên bản màn hình hiện có.
Lekensteyn

5
Lời khuyên này đã giúp tôi với cùng một vấn đề nhưng tôi nghĩ nó bao gồm một lỗi đánh máy. Tôi khá chắc chắn rằng bạn cần phải gõ Ctrl-bvà sau đó dđể rời / tách tmuxphiên. Chắc chắn đó là trường hợp của phiên bản tmuxtrên Ubuntu 12.04 của tôi.
cxrodgers

17
Tôi đã làm sai trong khi làm theo các hướng dẫn ở trên. Tôi sẽ chia sẻ nó nếu bất kỳ ai cũng có thể rơi vào sai lầm tương tự: Tôi đã khởi động tmux trong vỏ máy tính của riêng tôi thay vì vỏ của máy tính từ xa. Người ta cần khởi động tmux trong vỏ máy tính từ xa.
Mert Nuooselu

5
Màn hình hiện đang được phát triển trở lại : lists.gnu.org/archive/html/screen-devel/2014-04/msg00024.html Bạn có thể cập nhật câu trả lời của mình không?
muru

4
Hoặc, chạy tmux detachthay vì gõctrl-b d
Andrew

305

Lựa chọn 1: nohup

Cách tốt nhất thường là đơn giản nhất.

nohup long-running-command &

Nó được làm riêng cho việc này, nó thậm chí còn ghi lại thiết bị xuất chuẩn nohup.log.

man nohup

Tùy chọn 2: bg

Nếu bạn muốn "làm nền" một số tác vụ đã chạy, thì cách tốt nhất của bạn là Ctrl+ Zsau đó chạy

bg

để đặt tác vụ bị treo gần đây nhất của bạn xuống nền, cho phép nó tiếp tục chạy.

Sau đó, nhanh chóng disowngiữ cho quá trình chạy sau khi bạn đăng xuất.

screenvà những người khác có thể làm điều đó, nhưng đó không phải là những gì họ làm. Tôi khuyên bạn nên thực hiện nohupcác nhiệm vụ mà bạn biết rằng bạn sẽ bỏ lại phía sau và bgcho các nhiệm vụ bạn đang chạy và không muốn bắt đầu lại.

Hãy ghi nhớ, cả hai đều là bash cụ thể. Nếu bạn không sử dụng bash, thì các lệnh có thể khác.


4
Tôi muốn giới thiệu để làmdisown -h
Michele

màn hình thú vị và tmux không hoạt động cho thợ mỏ, bur nohup hoạt động
Yasin Okumuş

1
bg+ disownkhông làm việc cho tôi. Tôi đã có một kịch bản triển khai đang chạy Tôi quên bắt đầu bên trong tmux và cần phải rời đi sớm cho một cuộc họp. Kịch bản liên tục xuất tiến trình sang trình bao. ctrl+zdừng quá trình, trả lại cho tôi bash. bgđã tiếp tục quá trình, nhưng nó cũng tiếp tục xuất ra trạng thái bash, làm cho không thể thấy những gì tôi đang gõ. Tuy nhiên, một disownlệnh tạo ra "disown: current: không có công việc như vậy"
BrianHVB

điều này không làm việc cho tôi julia myFile.jlvì bất cứ lý do gì. tmux làm và là tuyệt vời.
kilgoretrout

Điều này làm việc cho tôi, cảm ơn bạn rất nhiều
Chad

207

Bạn có thể làm điều đó bằng cách sử dụng screen.

Nhập man screenđể tìm hiểu thêm hoặc đọc trang man màn hình này .

Kịch bản đơn giản:

  • ssh vào hộp từ xa của bạn. Gõ screenSau đó bắt đầu quá trình bạn muốn.

  • Nhấn Ctrl- Asau đó Ctrl- D. Điều này sẽ "tách" phiên màn hình của bạn nhưng để các tiến trình của bạn chạy. Bây giờ bạn có thể đăng xuất khỏi hộp từ xa.

  • Nếu bạn muốn quay lại sau, hãy đăng nhập lại và gõ screen -rĐiều này sẽ "tiếp tục" phiên màn hình của bạn và bạn có thể thấy đầu ra của quy trình của mình.


32
Tôi thường sẽ đặt tên cho các phiên trên màn hình của mình bằng cách sử dụng screen -S nameđể dễ dàng kết nối với phiên chính xác hơn sau này.
David Oneill

Liên kết không hoạt động
Gab

1
Cá nhân, tôi đang làm việc trên một hộp mà không có phần mềm kiểm soát gói. Sau khi dành khoảng nửa giờ để xây dựng các phụ thuộc cho TMUX (mà cá nhân tôi có kinh nghiệm và thích) từ nguồn, rõ ràng màn hình là giải pháp tốt hơn và đơn giản hơn đối với tôi. TL; DR: giải pháp tối ưu cho vấn đề này phụ thuộc vào trường hợp sử dụng, máy và thời gian bạn phải thiết lập. Cảm ơn câu trả lời này :)
Max von Hippel

Kết hợp với screen -Strước khi rời đi và screen -rkhi trở lại là tuyệt vời!
Meloman

Cảm ơn vì điều đó. Giải pháp này hiệu quả với tôi trong khi tmux thì không (Tôi sử dụng phiên bản bash cho windows trong khi ssh'ing vào máy linux)
Michael Sorensen

83

Màn hình và nohup là cách tốt hơn, nhưng nếu bạn phải tách một quá trình đã chạy mà không có màn hình hoặc nohup, bạn có thể chạy lệnh disown.

disown [-ar] [-h] [jobspec… |pid… ]

Không có tùy chọn, loại bỏ từng jobspec khỏi bảng công việc đang hoạt động. Nếu -htùy chọn được đưa ra, công việc sẽ không bị xóa khỏi bảng, nhưng được đánh dấu để SIGHUP không được gửi đến công việc nếu shell nhận được SIGHUP. Nếu jobspec không có mặt và cả tùy chọn -acũng không -rđược cung cấp, công việc hiện tại sẽ được sử dụng. Nếu không có jobspec được cung cấp, -atùy chọn có nghĩa là loại bỏ hoặc đánh dấu tất cả các công việc; các -rtùy chọn mà không một JOBSPEC luận hạn chế hoạt động để chạy việc làm.

Khi không sử dụng, bạn có thể đóng thiết bị đầu cuối và chạy quy trình trên máy.


10
Đây cũng là cách yêu thích của tôi để làm điều đó. Tôi thường xuyên sử dụngdisown -a && exit
Stefano Palazzo

1
Hoàn hảo. Đây là một lệnh đáng yêu và xứng đáng với tất cả các upvote!
Greg

8
Một lời cảnh báo, tôi đã dừng một quá trình đang chạy bằng Ctrl-Z và không khởi động nó ở chế độ nền trước khi gọi disownvà nó đã giết nó.
HDave

3
Có thể sụp đổ nếu nó muốn ghi vào thiết bị đầu cuối. Chuyển hướng đầu ra của một quá trình đang chạy không phải là dễ dàng. Tốt hơn để bắt đầu nó đúng cách với nohup.
jiggunjer

2
Đây là một câu trả lời tốt, bởi vì nó trực tiếp trả lời câu hỏi. Tác giả của câu hỏi đã hỏi phải làm gì sau khi đã thực hiện một loạt các lệnh chạy dài. Hầu hết các câu trả lời này cho bạn biết phải làm gì trước khi bạn thực hiện các lệnh.
q0rban

53

Tôi bị kẹt trong một mv lớn vì vậy tôi không ở vị trí dừng quá trình, thiết lập màn hình và sau đó bắt đầu lại. Tôi đã quản lý để thoát phiên ssh với quy trình đang chạy bằng cách thực hiện các bước sau:

  1. ssh [máy chủ]
  2. chỉ huy
  3. Ctrl+Z
  4. bg
  5. từ chối [quy trình pid tùy chọn, mặc định là cuối cùng]
  6. lối ra

Bước 3 tạm dừng quy trình hiện tại (ví dụ: lệnh 'mv' của tôi).
Bước 4 đặt quá trình tạm dừng vào nền và tiếp tục lại.
Bước 5 cho phép bạn từ chối quá trình. ** Để có được một danh sách các công việc chỉ cần gõ jobstrước.


** Về việc từ chối (từ hướng dẫn sử dụng bash):

disown [-ar] [-h] [jobspec ... | pid ... ]
              Without  options,  remove  each jobspec from the table of active
              jobs.  If jobspec is not present, and neither the -a nor the  -r
              option  is  supplied, the current job is used.  If the -h option
              is given, each jobspec is not removed from  the  table,  but  is
              marked  so  that  SIGHUP  is  not  sent  to the job if the shell
              receives a SIGHUP.  If no jobspec is  supplied,  the  -a  option
              means  to  remove or mark all jobs; the -r option without a job‐
              spec argument restricts operation to running jobs.   The  return
              value is 0 unless a jobspec does not specify a valid job.

2
Tích hợp luôn là lựa chọn đầu tiên của tôi :) THX
ken_oy

Câu trả lời này nên được đánh dấu là đúng. Để cài đặt và làm quen với màn hình để giải quyết vấn đề này là quá đáng.
Ulrich-Lorenz Schlüter

Điều này rất hữu ích khi bạn đã bắt đầu bất kỳ lệnh nào và đang chạy trong thời gian dài. Việc chấm dứt và bắt đầu nó trong Phiên TMUX sẽ mất thời gian
Deepali Găngal

1
@ tom-brossman: Xin hãy coi chừng những chỉnh sửa không cần thiết như thế này ! Nếu được gọi mà không có đặc tả công việc disown, lệnh tích hợp sẽ hoạt động trên công việc nền gần đây nhất.
David Foerster

22

Có hai chương trình chính bạn có thể sử dụng để duy trì chương trình và trạng thái đầu cuối trên nhiều kết nối ssh. Chúng là màn hình (đương nhiệm, nhưng không may là không rõ ràng. Rõ ràng hiện đang được tích cực phát triển ) và tmux (mới hơn, được duy trì tích cực). Byobu là một giao diện người dùng có thể chạy trên các hệ thống này và cung cấp thêm thông tin trạng thái ubfox. Trên các bản cài đặt mới, nó sẽ sử dụng tmux làm phần phụ trợ, nếu bạn có bản cài đặt cũ hơn của byobu và một cấu hình hiện có, nó sẽ duy trì phần phụ trợ trước đó, có thể là màn hình hoặc tmux.

Byobu

Byobu có thể được cài đặt trên máy tính bằng cách thực hiện trong máy dựa trên Debian:

sudo aptitude install byobu

Sử dụng yum, bạn làm

su -c 'yum install byobu'

Cũng có thể cài đặt byobu trên các bản phân phối khác.

Sử dụng byobu

Bạn có thể bắt đầu byobu bằng cách chạy byobutrên máy chủ sau khi kết nối bằng ssh. Điều này sẽ cung cấp cho bạn một vỏ trông như thế này:

hình ảnh-byobu

Bạn cũng có thể sử dụng Byobu Terminal trên máy Ubuntu với tùy chọn -X và dễ dàng có một byobu hoạt động hoàn hảo.

Sử dụng:

Bắt đầu byobu bằng cách gõ byobu.

Bạn có thể nhấn F2 để tạo một cửa sổ mới trong phiên hiện tại, F3-F4 để chuyển giữa các cửa sổ khác nhau.

Phần tốt nhất về byobu là, bạn không thực sự phải giết các tiến trình đang chạy trong thiết bị đầu cuối để rời khỏi thiết bị đầu cuối. Bạn chỉ có thể gửi screen / tmux (bộ xương của byobu) đến nền và tiếp tục lại vào lần tới:

  • Để rời khỏi byobu và keeep nó đang chạy (tách) nhấn F6.
  • Lần tới khi bạn đến, chỉ cần làm byobuvà bạn sẽ quay lại ngay nơi bạn đang ở.

    byobu-tách-đính kèm

Bạn cũng có thể tạo các phiên byobu khác nhau byobu -S session1và cứ thế. Và bạn có thể kết nối với một trong số họ khi bạn quay lại.

Bạn có thể làm nhiều hơn nữa bằng cách sử dụng Byobu. Sử dụng nó! Một số hướng dẫn dứt khoát là ở đây , hoặc ở đây .


Tôi đã thử sử dụng byobu từ phiên dựa trên PuTTY vào hộp Ubuntu của mình, nhưng tôi nhận được dòng trạng thái được lặp lại và cuộn trên màn hình. Mặc dù nó tách ra một cách chính xác khi nhấn F6, nhưng nó không phải là một giải pháp có thể sử dụng được trong thiết lập của tôi.
jfmessier

1
@jfmessier Đó là vì PuTTY không dùng ncurses (utf-8 về cơ bản) tốt. Có thể loại bỏ vấn đề này bằng cách thực hiện theo chủ đề này - stackoverflow.com/questions/10731099/ triệt
SiddharthaRT

Điều này thật tuyệt! 1. nó cung cấp cho tôi một dấu nhắc bash màu mà tôi dường như không thể bật với bash làm vỏ mặc định của mình và 2. Tôi có thể chạy 2 bot cùng một lúc và vẫn có một thiết bị đầu cuối khác để làm việc! @SiddharthaRT bạn xứng đáng nhận được sự ủng hộ!
Dev

18

Bạn không thể làm điều này một khi quá trình đã bắt đầu, bạn cần phải thiết lập mọi thứ trước khi bạn thực hiện một công việc dài.

Bạn có thể sử dụng nohup nhưng trí tuệ hiện đại cho thấy bạn sử dụng màn hình hoặc byobu làm thông tin đăng nhập để bạn có thể tách ra và để mọi thứ chạy.

Màn hình có lợi thế là bạn có thể tách rời khỏi một máy và gắn lại từ một máy khác, điều này rất tiện lợi nếu bạn muốn kiểm tra các quy trình chạy dài chạy quá cuối ngày làm việc.

Có một hướng dẫn bắt đầu hợp lý để sàng lọc ở đây.

byobu đặt một giao diện dễ sử dụng lên trên màn hình với các menu, v.v ... Đó cũng là cách triển khai màn hình hiện tại trên Ubuntu mới hơn. F2 để bắt đầu một thiết bị đầu cuối F3 / F4 mới để chuyển đổi qua lại và F6 để ngắt kết nối. Gõ exit để thực sự kết thúc thiết bị đầu cuối vĩnh viễn.


byobu sử dụng tmux những ngày này ..
scottl

12
"Bạn không thể làm điều này một khi quá trình đã bắt đầu, bạn cần phải thiết lập mọi thứ trước khi bạn thực hiện một công việc dài." - không, bạn có thể sử dụng disownđể đạt được điều này. Xem câu trả lời của @ bassgey
Giàu

1
sau khi vật lộn tìm hiểu màn hình và tmux .... byobu đã rơi nước mắt
HDave

disownvà nếu chỉ cần Ctrl-z, sau đó bgđể có được nó của thiết bị đầu cuối hoạt động và nền. Sau đó , disown.
mimoralea

8

Này, trong khi tôi đồng ý rằng màn hình là lựa chọn hoàn hảo nhất. Bạn có thể sử dụng vncserver và sau đó bắt đầu quá trình trên nó.

Ngoài ra nếu giao diện duy nhất của bạn là có quy trình đang chạy và không cần kiểm soát lại nó, và điều quan trọng nhất là bạn không biết bạn sẽ cần phải đóng phiên và bạn đã có quy trình đang chạy, bạn sẽ không gặp may nếu bạn đã sử dụng bash làm vỏ

Trước tiên, bạn cần gửi quy trình đến nền bằng cách nhập Ctrl + Z theo sau là bg% 1 (số phụ thuộc vào số công việc, thường là 1, nhưng bạn có thể dễ dàng kéo danh sách bằng cách sử dụng lệnh job)

Cuối cùng gọi lệnh disown (tiếp theo là jobid ... giống như với lệnh bg)

Điều này sẽ loại bỏ mối quan hệ cha-con giữa vỏ của bạn và quá trình trong nền, ngăn nó chết khi vỏ của bạn bị chấm dứt.


2
Câu trả lời này là tốt nhất! Tại sao mọi người nói về screen, câu hỏi được đặt ra sau sự kiện đăng nhập, làm thế nào để giữ cho các quy trình hoạt động, bây giờ sau khi đăng nhập nhưng trước khi bắt đầu chúng. Câu trả lời tuyệt vời, bạn đã thực sự giúp tôi! :)
jwbensley

1
Đơn giản bg(không có %1) thường là đủ, vì mặc định là công việc hiện tại
Walter Tross

Sẽ thật tuyệt khi có một câu trả lời toàn diện: Một tiên nghiệm (thiết lập trước): màn hình thiết bị đầu cuối ascii (cũ), tmux (neewer); X windows: vnc (cũ, vẫn được duy trì), xpra (mới hơn), với xpra là rootless. Một hậu thế (vẫn tồn tại sau khi bạn bắt đầu): ^ Z, không thích, ... Nhưng tôi quá lười biếng để làm cho nó nhiều hơn thế này.
Krazy Glew

8

Đối với một tập lệnh shell duy nhất mà tôi đã chạy trong một thời gian dài, tôi sẽ đăng nhập và chạy quy trình trong nền bằng cách sử dụng '&'.

Thí dụ:

/path/to/my/script &

Tôi đã đăng xuất và ngắt kết nối phiên SSH của mình. Khi tôi đăng nhập một thời gian sau đó, tập lệnh vẫn đang thực thi như được chứng minh bằng cách thu thập dữ liệu liên tục từ tập lệnh.


3
Có, tôi muốn biết làm thế nào màn hình / tmux tốt hơn giải pháp đơn giản này.
Mads Skjern

Vâng, tôi cũng có thể thấy điều này trên Ubuntu của tôi, nhưng nó không nên xảy ra trên lý thuyết. Tôi không hiểu tại sao
Daniel Pinyol

1
@MadsSkjern Bởi vì bạn không thể nhập bất kỳ đầu vào nào vào tập lệnh bằng phương thức này.
Ken Sharp

1
@MadsSkjern lý do là nếu bạn chạy các quy trình như thế này &nếu bạn đăng xuất và đăng nhập vào phiên SSH, quy trình sẽ vẫn chạy tuy nhiên bạn sẽ không thể thấy đầu ra của quy trình đó (nếu tập lệnh của bạn lặp lại một cái gì đó sẽ không nhìn thấy nó, nhưng nếu nó ghi một tập tin thì tập tin sẽ ở đó)
DarkCygnus

4

Bạn nên kiểm tra GNU Screen và xem nó có giúp gì cho bạn không. Tùy thuộc vào cách bạn cần ứng dụng của bạn chạy trong thời gian thực, nó có thể gây ra nhiều vấn đề hơn giải quyết, nhưng ít nhất nó sẽ cho phép bạn tiếp tục phiên của mình như thể bạn không bao giờ rời khỏi nó.

Cách sử dụng:

  • Sử dụng lệnh screencho lần bắt đầu đầu tiên, cuộn qua các tin nhắn giới thiệu, bạn sẽ được trao một thiết bị đầu cuối.
  • Ca Cc mở một nhà ga khác
  • Ca Ck giết chết một thiết bị đầu cuối
  • Bạn có thể sử dụng Ca C-Space và Ca C-Backspace để quay vòng qua các thiết bị đầu cuối
  • Ca Ca rất tiện nếu bạn chỉ sử dụng hai thiết bị đầu cuối
  • Ca Cd tách phiên màn hình hiện tại và thoát khỏi màn hình. Sau đó bạn có thể sử dụng screen -rđể tiếp tục phiên đó. Bạn có thể có một số phiên màn hình tách rời cùng một lúc, trong trường hợp này bạn sẽ được hiển thị một danh sách các phiên có sẵn.

Có nhiều tùy chọn khác, ví dụ như màn hình chia nhỏ, và tất cả các phím tắt đều có thể tùy chỉnh hoàn toàn.


3

Câu trả lời đơn giản nhất ...

ctrl + z sẽ tạm dừng chương trình đang chạy

"bg" sẽ chạy nó trong nền


5
Không từ chối quá trình (với một cái gì đó như disownhoặc nohup), điều này thường sẽ không giữ cho quá trình chạy sau khi kết thúc phiên SSH.
Eliah Kagan

3
Trên máy chủ Ubuntu của tôi, với thiết lập mặc định, nó thực sự tiếp tục chạy!
Mads Skjern

3

Cách dễ nhất là chạy lệnh của bạn trong nền với &. Sau đó chỉ cần viết:

disown -a

0

Mặc dù mọi người đều nói sử dụng disown(tùy chọn duy nhất bạn có sau khi bạn đã bắt đầu quá trình), nohuphoặc thậm chí chạy lệnh trong screen, rất hữu ích nếu bạn muốn xem tất cả đầu ra từ lệnh ... Tôi là một fan hâm mộ của screen.. Tôi vẫn đã thử hầu hết các bản phân phối chính thống gần đây của Linux và chỉ đơn giản là đặt công việc ở chế độ nền và bỏ việc không khiến tất cả các quy trình đang chạy bị chết. Phải có một thiết lập toàn cầu hoặc một cái gì đó. Tôi đang thử điều này trên một số hệ thống khá cũ (slackware 12) và tập lệnh thử nghiệm của tôi tiếp tục chạy cho đến khi tôi tự hủy nó:

shell$ cat > test.pl

#!/usr/bin/perl
while(1){
     sleep(1);
}
    shell$ perl ./test.pl &
    shell$ exit
    logout
    shell$ ps aux test.pl
    mymom 31337     1  0 13:25 ?        00:00:00 perl ./test.pl
    shell$ 

Mặc dù tôi đồng ý rằng đó screensẽ là cách tốt nhất để chạy nó, ngay cả khi tập lệnh của tôi được ghi vào tệp nhật ký hoặc bất cứ điều gì .. Tôi không bao giờ cần phải sử dụng disown -a hoặc nohuptrừ khi nó hoàn toàn bị hoang tưởng. Có lẽ ai đó có thể làm sáng tỏ về cách bash cư xử theo mặc định? Có thể một số quản trị viên hệ thống thay đổi mặc định trên các vỏ lớn để giữ cho các quy trình của người dùng của họ không làm quá tải hệ thống?


Nếu bạn có bất kỳ câu hỏi nào, xin vui lòng hỏi nó như một câu hỏi mới
heemayl

0

Thật không may, một phiên SSH bị chấm dứt có thể dẫn đến tmux hoặc màn hình bị tắt. Điều này là do systemdsẽ chấm dứt bất kỳ tiến trình con nào khi đăng xuất khỏi phiên.

Bạn có thể thay đổi cài đặt này trong logind.conf( /etc/systemd/logind.conf):

KillUserProcesses=no

Cảm ơn câu trả lời trong https://unix.stackexchange.com/questions/490267 .


-1

Thay vì :

cmd options; 

Thêm trước nohup:

nohup cmd options & 

Sau đó, bạn sẽ có thể thấy thiết bị xuất chuẩn của giao diện điều khiển bằng cách:

tail -f nohup.out
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.