Điểm:0

Không hủy tập lệnh từ xa khi quy trình người gọi cục bộ bị hủy

lá cờ mg

Vấn đề

Tôi gọi một quá trình chạy dài qua ssh. Và điều cần thiết là quá trình này sẽ không bị giết. Người dùng có thể hủy quy trình ban đầu trên Máy chủ của nó và tôi không thể làm gì với nó.

Làm cách nào để quy trình từ xa không bị hủy nếu quy trình ban đầu bị hủy?

Người dùng -> user.sh -> SSH-to-remote -> long-running.sh

Nó phải:

  1. Xuất đầu ra của quy trình từ xa
  2. Thoát khi quá trình từ xa thoát
  3. Đừng giết quá trình từ xa, nếu quá trình ban đầu bị giết
  4. Cung cấp tệp nhật ký đầu ra

Giải pháp đầu tiên không đầy đủ

Tôi đã nghĩ về một cái gì đó bằng cách sử dụng Nohup nhưng nó không hoạt động cho đến nay:

Người dùng -> user.sh -> SSH-to-remote -> init.sh -> long-running.sh

init.sh

#!/bin/bash
Nohup ./long-running.sh >out.log 2>&1 </dev/null &
pid=$!
từ chối $pid
đuôi -f out.log &
đợi $pid

long-running.sh (nội dung để thử nghiệm)

#!/bin/bash
cho tôi bằng $(seq 30)
làm 
    tiếng vang $i
    ngủ 1
xong

Giải pháp này không giải quyết được 2. Nó không thoát khi quá trình từ xa thoát.

kanehekili avatar
lá cờ zw
Tôi đang sử dụng [tmux](https://man7.org/linux/man-pages/man1/tmux.1.html) hoặc systemctl. Cái sau cần một tệp dịch vụ nhỏ [ví dụ](https://askubuntu.com/a/1336578/906933) để được ghi.
Điểm:0
lá cờ mg

Có vẻ như tôi đã tìm thấy một giải pháp.

init.sh

#!/bin/bash
Nohup ./long-running.sh >out.log 2>&1 </dev/null &
pid=$!
từ chối $pid
đuôi --pid=$pid -f out.log

Trong giải pháp đầu tiên của tôi đợi đã đã không chờ đợi như từ chối đã xóa thông số công việc. đuôi chạy mãi mãi và giữ cho phiên mở.

Hiện nay đợi đã đã được gỡ bỏ và đuôi đợi quá trình thoát ra. Việc tiêu diệt từ máy chủ nguồn sẽ giết chết đuôi nhưng không giết chết quá trình chạy dài.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.