Bagaimana untuk menghentikan proses latar belakang dalam skrip shell yang sedang berjalan
P粉722409996
P粉722409996 2023-09-03 18:16:08
0
1
586

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:

set -m daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@" $daemon & exec echo "Ujian" exec fg % 1  

Saya bukan pakar pengaturcaraan skrip shell, saya melihat beberapa tapak web dan mendapati kaedah melaksanakan arahan ini.

P粉722409996
P粉722409996

membalas semua (1)
P粉521748211

Tidak. Skrip dalamexec echo "Test"后停止。execmenggantikan proses semasa (iaitu skrip shell) dengan arahan berikut. Anda boleh mengesahkan melalui:

daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@" $daemon & exec echo "Test" echo "Second Test" exec fg %1

Penyelesaiannya mudah: jangan gunakanexec.

BTW: Tidak jelas mengapa anda ingin menggunakanfg。在交互式shell中,fgdalam skrip shell, ia tidak berfungsi dalam skrip.

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!