Bất cứ ai cũng có thể đề xuất cách tôi có thể làm việc này ....Gọi Rscript từ tập lệnh shell linux
Tôi có một tập lệnh R mất vài phút để chạy và viết vài trăm dòng đầu ra. Tôi muốn viết một trình bao bọc shell script xung quanh tập lệnh R này sẽ khởi chạy kịch bản lệnh R trong nền, đưa đầu ra của nó vào một tệp và bắt đầu theo sau tệp đó. Nếu người dùng sau đó vào CTRL-C, tôi muốn điều đó để tiêu diệt kịch bản lệnh shell và lệnh đuôi nhưng không phải là tập lệnh R. Âm thanh đơn giản đúng không?
Tôi đã tạo một ví dụ đơn giản dưới đây, nhưng tôi không hiểu tại sao điều này không hiệu quả. Bất cứ khi nào tôi giết kịch bản lệnh shell, kịch bản lệnh R cũng bị giết mặc dù dường như đang chạy ẩn. Tôi đã cố gắng nohup, disown vv không thành công.
example.R
for(i in 1:1000){
Sys.sleep(1)
print(i)
}
wrapper.sh
#!/bin/bash
Rscript example.R > logfile &
tail -f logfile
Cảm ơn trước!
Không, không phải vậy. Nếu tôi làm điều đó tôi nhận được hai công việc đang chạy trong nền và CNTL-C doen't giết một trong hai. Tôi muốn CNTL-C giết đuôi -f nhưng không phải Rscript. – David
Tôi không có quyền truy cập vào 'R', nhưng tôi đã thử tập lệnh chính xác này với PHP và nó hoạt động như mô tả. Ctrl-C giết chết tập lệnh gốc nhưng để lại quá trình chạy nền. – miken32