Mendapat dua perintah cmd1 dan cmd2. Dari keduanya, cmd2 membutuhkan waktu lebih lama untuk selesai. Perlu menjalankan cmd2 dan kemudian cmd1.
Mencoba menjalankannya dengan cara berikut:
bash$ (nohup ./cmd2>result2 &) && nohup ./cmd1>result1 &
atau
bash$ (nohup ./cmd2>result2 &) ; nohup ./cmd1>result1 &
Tetapi kedua waktu saya dapat melihat cmd1 tidak menunggu cmd2 selesai dan result1 terisi.
Bagaimana membuat cmd1 dijalankan setelah cmd2 ketika keduanya harus proses nohup dan dijalankan di latar belakang?
shell
process
background-process
nohup
pengguna33767
sumber
sumber
Jawaban:
Anda membuat keduanya
cmd1
dancmd2
berjalan secara paralel. Anda berkata: "Mulai cmd2 di latar belakang dan putuskan hubungan apa pun dengannya. Mulai cmd1 di latar belakang dan putuskan hubungan apa pun dengannya. ” Maksud Anda: “Mulai cmd2 di latar belakang; ketika sudah selesai, mulai cmd1 (juga di latar belakang). " Karena tidak ada lagi hubungan dengan tugas latar belakang, Anda perlu menyusun tugas latar belakang yang melakukan cmd2 lalu cmd1. Inicmd2; cmd1
(atau lebih tepatnyacmd2 && cmd1
menjalankan cmd1 hanya jika cmd2 berhasil), dan Anda harus memberitahunohup
untuk memulai shell yang berjalan di latar belakang untuk itu.sumber
Jika Anda tidak keberatan tidak menggunakan nohup:
sumber
Cukup gunakan:
sumber
beri tahu kami apa yang sebenarnya Anda lakukan dengan cmd2 dan cmd1. Itu tergantung pada jenis tugas dan output yang Anda inginkan dari perintah Anda. Jika Anda menghadapi masalah dengan menekan dua kali masukkan kunci dengan perintah maka bisa dipecahkan oleh posting saya ini
Anda bisa pergi dengan cara ini juga
Lihat screenshot yang diberikan di bawah ini, Di sini saya menggunakan 3 perintah dan semua menjalankan satu per satu secara berurutan. Saya menggunakan backticks untuk tugas ini. Dalam tangkapan layar, Anda juga dapat mengamati cap waktu tanggal. perintah sleep memiliki 60 detik, maka setelah 60 detik perintah saya berikutnya berhasil dijalankan. Saya menggunakan perintah pekerjaan untuk memeriksa apakah ada perintah yang masih berjalan di latar belakang. Di sini tidak. pekerjaan yang bisa Anda lihat adalah 1.
Tangkapan layar ini juga tersedia di tautan ini , jika tidak terlihat
sumber