output-file2>error-file]& Maksud parameter adalah seperti berikut: COMMAND: Perintah atau skrip yang perlu dijalankan di latar belakang. ARGS: Argumen kepada arahan atau skrip. >keluaran-"/> output-file2>error-file]& Maksud parameter adalah seperti berikut: COMMAND: Perintah atau skrip yang perlu dijalankan di latar belakang. ARGS: Argumen kepada arahan atau skrip. >keluaran-">

Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan arahan nohup dalam Linux

Cara menggunakan arahan nohup dalam Linux

PHPz
PHPzke hadapan
2023-05-12 08:52:103994semak imbas

Apa itu nohup?

nohup ialah arahan dalam sistem Linux dan Unix Fungsinya adalah untuk membolehkan proses terus berjalan di latar belakang apabila terminal keluar. Nama penuhnya ialah "no hang up", yang bermaksud "no hang up". Perintah nohup membolehkan anda meneruskan menjalankan arahan selepas keluar dari terminal atau menutup sambungan SSH.

peraturan sintaks nohup

Sintaks asas perintah nohup adalah seperti berikut:

nohup COMMAND [ARGS ...] [> output-file 2> error-file] &

Maksud parameter adalah seperti berikut:

  • COMMAND : Arahan atau skrip yang perlu dijalankan di latar belakang.

  • ARGS: Parameter arahan atau skrip.

  • > output-file: Output dihalakan semula ke fail yang ditentukan.

  • 2> error-file: Mesej ralat dihalakan semula ke fail yang ditentukan.

  • &: Jalankan arahan di latar belakang.

Proses pelaksanaan arahan nohup dibahagikan kepada langkah berikut:

  • Arahan nohup menukar input standard, output standard dan standard ralat cangkerang semasa Semua output dihalakan semula ke peranti /dev/null untuk mengelak daripada diganggu oleh isyarat yang menutup terminal.

  • Arahan nohup melaksanakan proses di latar belakang dan mengeluarkan PID proses ke terminal.

  • Proses memulakan pelaksanaan dan mengubah hala output standard dan output ralat standard ke fail yang ditentukan.

  • Pengguna boleh keluar dari terminal atau menutup tetingkap terminal dan proses itu masih akan berjalan di latar belakang.

Cara menggunakan nohup

Menggunakan arahan nohup adalah sangat mudah, cuma ikut sintaks asas di atas. Berikut ialah beberapa contoh penggunaan arahan nohup:

Jalankan arahan di latar belakang

Untuk menjalankan arahan di latar belakang, masukkan sahaja arahan berikut pada baris arahan:

nohup COMMAND &

Sebagai contoh, jalankan skrip Bash di latar belakang:

nohup bash test.sh &

Ubah hala output standard ke fail

nohup bash test.sh > stdout.txt &

Ubah hala output ralat standard ke fail

nohup bash test.sh 2> stderr.txt &

Ubah hala kedua-duanya output standard dan output ralat standard Ubah hala ke fail

1 Ubah hala ke fail yang sama

nohup bash test.sh > output.txt 2>&1 &

2 Ubah hala ke fail lain

nohup bash test.sh > stdout.txt 2> stderr.txt &

3. Input kriteria pengalihan (stdin):

nohup ./myprogram > foo.out 2> foo.err < /dev/null &

Terdapat tambahan < /dev/null di sini, yang bermaksud mengubah hala input standard ke /dev/null untuk memastikan program tidak membaca sebarang data daripada input standard.

Ini adalah untuk menyelesaikan masalah praktikal: Sesi SSH sering enggan log keluar (atau hang) kerana tidak mahu kehilangan data yang berinteraksi dengan kerja latar belakang. Apabila menghadapi masalah ini, anda boleh menggunakan arahan di atas untuk menyelesaikannya dengan mengubah hala tiga kali.

pengurusan proses latar belakang nohup

Gunakan perintah jobs untuk melihat senarai tugasan yang dijalankan di latar belakang dalam cangkerang semasa, termasuk nombor tugas, status dan arahan.

Sebagai contoh, kami melaksanakan perintah sleep 1000 di latar belakang, gunakan perintah jobs untuk melihat:

$ jobs
[1]+  Running                 nohup sleep 1000 &amp;

Antaranya, nombor dalam kurungan segi empat sama mewakili nombor tugas dan tanda tambah atau tolak mewakili tugas Keutamaan Running menunjukkan bahawa tugasan sedang berjalan di latar belakang. Di samping itu, terdapat kemungkinan keadaan lain, termasuk Stopped (berhenti), Done (selesai), dsb.

Kita juga boleh menggunakan perintah fg untuk mengalihkan tugas latar belakang ke latar depan untuk terus berjalan, contohnya:

$ fg %1

Arahan ini akan mengalihkan tugasan dengan tugasan nombor 1 ke latar depan dan meneruskan pelaksanaan. Jika anda ingin menjeda atau menyambung semula tugas, anda boleh menggunakan kekunci Ctrl-Z untuk menghantar isyarat SIGTSTP dalam cangkerang semasa.

$ fg %1
nohup sleep 1000

^Z
[1]+  Stopped                 nohup sleep 1000

Jika anda ingin menyambung semula operasi pada masa ini, anda boleh menggunakan perintah bg:

$ bg %1
[1]+ nohup sleep 1000 &amp;

Jika anda ingin mematikan tugas, anda boleh menggunakan perintah kill:

$ kill %1
[1]+  Terminated              nohup sleep 1000

Jika anda ingin mematikan semua tugasan latar belakang, tetapi merasa menyusahkan untuk melakukannya satu demi satu, anda boleh menggunakan perintah disown untuk menyelesaikan masalah:

$ disown -a

Arahan ini boleh bunuh semua tugas latar belakang, tetapi tidak akan ada gesaan, anda boleh mengesahkan melalui perintah jobs.

Atas ialah kandungan terperinci Cara menggunakan arahan nohup dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam