Bagaimana untuk menghentikan proses latar belakang dalam skrip shell yang sedang berjalan
P粉722409996
2023-09-03 18:16:08
<p>Saya cuba menjalankan mysqld di latar belakang untuk melaksanakan beberapa arahan menggunakan klien mysql, tetapi apabila saya menukar proses ke latar depan, skrip saya berhenti berjalan. Ini adalah skrip yang saya gunakan: </p>
<pre class="brush:sh;toolbar:false;">set -m
daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@"
$daemon &
exec echo "Ujian"
exec fg % 1
</pra>
<p>Saya bukan pakar pengaturcaraan skrip shell, saya melihat beberapa tapak web dan mendapati kaedah melaksanakan arahan ini. </p>
Tidak. Skrip dalam
exec echo "Test"
后停止。exec
menggantikan proses semasa (iaitu skrip shell) dengan arahan berikut. Anda boleh mengesahkan melalui:Penyelesaiannya mudah: jangan gunakan
exec
.BTW: Tidak jelas mengapa anda ingin menggunakan
fg
。在交互式shell中,fg
dalam skrip shell, ia tidak berfungsi dalam skrip.