GNU/Linux >> Belajar Linux >  >> Linux

Jalankan Perintah Nohup Dengan Input?

Di UNIX, saya memiliki proses yang ingin saya jalankan menggunakan nohup. Namun, proses ini pada titik tertentu akan menunggu di prompt di mana saya harus memasukkan yes atau no untuk itu untuk melanjutkan. Sejauh ini, di UNIX saya telah melakukan hal berikut:

nohup myprocess <<EOF
y
EOF

Jadi saya memulai proses 'myprocess' menggunakan nohup dan pipa di file dengan 'y' lalu tutup file. Baris di atas secara efektif adalah tiga perintah terpisah – yaitu saya menekan enter pada baris pertama di UNIX, lalu saya mendapatkan prompt di mana saya memasukkan 'y' dan kemudian tekan enter untuk akhirnya ketik 'EOF' dan tekan kembali lagi. Jadi ini berfungsi dengan baik, tetapi masalah saya ada di bawah.

Sekarang saya ingin menjalankan ini di Perl, tetapi saya tidak yakin bagaimana saya bisa menjalankan perintah ini, karena lebih dari tiga baris. Saya tidak tahu apakah yang berikut ini akan berhasil:

my $startprocess = `nohup myprocess <<EOF &
y
EOF
`

Jawaban yang Diterima:

Jika Anda hanya ingin menulis satu y ke stdin proses, Anda dapat melakukan ini:

(echo y | nohup myprocess) &

Jika Anda ingin terus menulis y untuk setiap prompt yang muncul, coreutil yes ada untuk tujuan ini — itu akan terus menulis apa pun yang Anda perintahkan ke stdout. Standarnya adalah untuk menampilkan “y”, jadi Anda cukup:

(yes | nohup myprocess) &

tetapi jika Anda membutuhkan sesuatu yang lain, Anda dapat meneruskannya sebagai argumen


Linux
  1. Perintah Nohup dengan Contoh

  2. Jalankan Perintah Sekali Per Baris Input Pipa?

  3. Bagaimana cara menjalankan perintah bash dengan hak sudo di Jawa?

  1. Perintah wc Linux dengan Contoh

  2. Perintah JQ di Linux dengan Contoh

  3. Perintah Linux/Unix untuk menggabungkan N baris input dengan pembatas?

  1. Perintah sortir Linux dengan Contoh

  2. Perintah Echo di Linux (Dengan Contoh)

  3. Perintah man di Linux dengan Contoh