cari
RumahOperasi dan penyelenggaraanoperasi dan penyelenggaraan linuxLinux如何让进程在后台运行的三种方法详解

我们经常会碰到这样的问题,想要在Linux 服务器运行一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?

下面列举了三种方法,可以很方便的满足上述需求。

问题分析:

我们知道,当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。

三种解决办法:

1. nohup

nohup 无疑是我们首先想到的办法。顾名思义,nohup 的用途就是让提交的命令忽略 hangup 信号。

nohup 的使用是十分方便的,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename 2>&1"来更改缺省的重定向文件名。

nohup 示例

[root@pythontab ~]# nohup ping www.pythontab.com &
[1] 3059
nohup: appending output to `nohup.out'
[root@pythontab ~]# ps -ef |grep 3059
root      3059   984  0 15:06 pts/3    00:00:00 ping www.pythontab.com
root      3067   984  0 15:06 pts/3    00:00:00 grep 3059
[root@pythontab ~]#

2。setsid

nohup 无疑能通过忽略 HUP 信号来使我们的进程避免中途被中断,但如果我们换个角度思考,如果我们的进程不属于接受 HUP 信号的终端的子进程,那么自然也就不会受到 HUP 信号的影响了。setsid 就能帮助我们做到这一点。

setsid 的使用也是非常方便的,也只需在要处理的命令前加上 setsid 即可。

setsid 示例

[root@pythontab ~]# setsid ping www.pythontab.com
[root@pythontab ~]# ps -ef |grep www.pythontab.com
root     31094     1  0 07:28 ?        00:00:00 ping www.pythontab.com
root     31102 29217  0 07:29 pts/4    00:00:00 grep www.pythontab.com
[root@pythontab ~]#

值得注意的是,上例中我们的进程 ID(PID)为31094,而它的父 ID(PPID)为1(即为 init 进程 ID),并不是当前终端的进程 ID。

3。& subshell

这里还有一个关于 subshell 的小技巧。我们知道,将一个或多个命名包含在“()”中就能让这些命令在子 shell 中运行中,从而扩展出很多有趣的功能,我们现在要讨论的就是其中之一。

当我们将"&"也放入“()”内之后,我们就会发现所提交的作业并不在作业列表中,也就是说,是无法通过jobs来查看的。让我们来看看为什么这样就能躲过 HUP 信号的影响吧。

subshell 示例

[root@pythontab ~]# (ping www.pythontab.com &)
[root@pythontab ~]# ps -ef |grep www.pythontab.com
root     16270     1  0 16:13 pts/4    00:00:00 ping www.pythontab.com
root     16278 15362  0 16:13 pts/4    00:00:00 grep www.pythontab.com
[root@pythontab ~]#

从上例中可以看出,新提交的进程的父 ID(PPID)为1(init 进程的 PID),并不是当前终端的进程 ID。因此并不属于当前终端的子进程,从而也就不会受到当前终端的 HUP 信号的影响了。

比较而言,我更喜欢用setsid,简单实用。当然,这里看大家喜好即可,效果上差别不大。

Atas ialah kandungan terperinci Linux如何让进程在后台运行的三种方法详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cara memeriksa konfigurasi OpenSSL DebianCara memeriksa konfigurasi OpenSSL DebianApr 12, 2025 pm 11:57 PM

Artikel ini memperkenalkan beberapa kaedah untuk memeriksa konfigurasi OpenSSL sistem Debian untuk membantu anda dengan cepat memahami status keselamatan sistem. 1. Sahkan versi OpenSSL terlebih dahulu, sahkan sama ada OpenSSL telah dipasang dan maklumat versi. Masukkan arahan berikut di terminal: Jika OpenSslversion tidak dipasang, sistem akan meminta ralat. 2. Lihat fail konfigurasi. Fail konfigurasi utama OpenSSL biasanya terletak di /etc/ssl/openssl.cnf. Anda boleh menggunakan editor teks (seperti nano) untuk melihat: Sudonano/etc/ssl/openssl.cnf Fail ini mengandungi maklumat konfigurasi penting seperti kunci, laluan sijil, dan algoritma penyulitan. 3. Menggunakan OPE

Cara Membina Persekitaran Pembangunan Hadoop di DebianCara Membina Persekitaran Pembangunan Hadoop di DebianApr 12, 2025 pm 11:54 PM

Panduan ini memperincikan bagaimana untuk membina persekitaran pembangunan Hadoop pada sistem Debian. 1. Pasang Kit Pembangunan Java (JDK) Pertama, pasang OpenJDK: SudoaptDateSudoaptinStallopenjdk-11-JDK-Iconfigure Java_Home Alam Sekitar: Java_home = "/usr/lib/jvm/java-11-opengdk-amd64" Simpan dan keluar, dan kemudian laksanakan: sumber/etc

Cara Melakukan Pengurusan Sumber Hadoop di DebianCara Melakukan Pengurusan Sumber Hadoop di DebianApr 12, 2025 pm 11:51 PM

Menguruskan sumber Hadoop secara berkesan pada sistem Debian memerlukan langkah -langkah berikut: Hadoop Deployment: Pertama, selesaikan pemasangan dan konfigurasi Hadoop pada sistem Debian. Ini termasuk operasi yang diperlukan seperti memuat turun pakej pengedaran Hadoop, penguraian, penetapan pembolehubah persekitaran, dan lain -lain. Anda perlu mengubah suai fail konfigurasi teras, seperti: core-site.xml, hdfs-site.xml, mapred-site.x

Apakah tetapan keselamatan untuk log debian tomcat?Apakah tetapan keselamatan untuk log debian tomcat?Apr 12, 2025 pm 11:48 PM

Untuk meningkatkan keselamatan log Debiantomcat, kita perlu memberi perhatian kepada dasar -dasar utama berikut: 1. Kawalan Kebenaran dan Pengurusan Fail: Kebenaran Fail Log: Kebenaran fail log lalai (640) mengehadkan akses. Adalah disyorkan untuk mengubah suai nilai UMASK dalam skrip Catalina.sh (contohnya, berubah dari 0027 hingga 0022), atau secara langsung menetapkan fail filepermissions dalam fail konfigurasi LOG4J2 untuk memastikan kebenaran baca dan tulis yang sesuai. Lokasi fail log: Log Tomcat biasanya terletak di/opt/tomcat/log (atau laluan yang serupa), dan tetapan kebenaran direktori ini perlu diperiksa dengan kerap. 2. Putaran dan format log: putaran log: konfigurasikan server.xml

Cara Mentafsirkan Amaran dalam Log TomcatCara Mentafsirkan Amaran dalam Log TomcatApr 12, 2025 pm 11:45 PM

Mesej amaran dalam log pelayan Tomcat menunjukkan masalah yang berpotensi yang boleh menjejaskan prestasi aplikasi atau kestabilan. Untuk mentafsirkan maklumat amaran ini dengan berkesan, anda perlu memberi perhatian kepada perkara -perkara utama berikut: Kandungan amaran: Berhati -hati mengkaji maklumat amaran untuk menjelaskan jenis, penyebab dan penyelesaian yang mungkin. Maklumat amaran biasanya memberikan penerangan terperinci. Tahap Log: Log Tomcat mengandungi tahap maklumat yang berbeza, seperti maklumat, amaran, kesilapan, dan lain-lain. "Amaran" Peringatan Tahap adalah isu bukan maut, tetapi mereka memerlukan perhatian. Timestamp: Catat masa apabila amaran berlaku untuk mengesan titik masa apabila masalah berlaku dan menganalisis hubungannya dengan peristiwa atau operasi tertentu. Maklumat konteks: Lihat kandungan log sebelum dan selepas maklumat amaran, dapatkan

Bagaimana log tomcat membantu menyelesaikan masalah kebocoran memoriBagaimana log tomcat membantu menyelesaikan masalah kebocoran memoriApr 12, 2025 pm 11:42 PM

Log Tomcat adalah kunci untuk mendiagnosis masalah kebocoran memori. Dengan menganalisis log tomcat, anda boleh mendapatkan wawasan mengenai kelakuan memori dan pengumpulan sampah (GC), dengan berkesan mencari dan menyelesaikan kebocoran memori. Berikut adalah cara menyelesaikan masalah kebocoran memori menggunakan log Tomcat: 1. GC Log Analysis terlebih dahulu, membolehkan pembalakan GC terperinci. Tambah pilihan JVM berikut kepada parameter permulaan TOMCAT: -XX: PrintGCDetails-XX: PrintGCDATestamps-XLogGC: GC.LOG Parameter ini akan menghasilkan log GC terperinci (GC.LOG), termasuk maklumat seperti jenis GC, saiz dan masa yang dikitar semula. Analisis GC.Log

Apakah kesan Debian Apache Log pada Prestasi PelayanApakah kesan Debian Apache Log pada Prestasi PelayanApr 12, 2025 pm 11:39 PM

Kesan log Apache pada prestasi pelayan di bawah sistem Debian adalah pedang bermata dua, yang mempunyai kesan positif dan kesan negatif yang berpotensi. Aspek Positif: Alat Diagnosis Masalah: Apache Log Records Semua permintaan dan tindak balas secara terperinci pada pelayan, dan merupakan sumber yang berharga untuk mencari kesalahan dengan cepat. Dengan menganalisis log ralat, kesilapan konfigurasi, isu kebenaran, dan pengecualian lain dapat dikenalpasti dengan mudah. Pemantauan Keselamatan Sentinel: Log akses dapat mengesan ancaman keselamatan yang berpotensi, seperti percubaan serangan berniat jahat. Dengan menetapkan peraturan audit log, aktiviti yang tidak normal dapat dikesan dengan berkesan. Pembantu Analisis Prestasi: Kekerapan Permintaan Pembalakan Akses dan Penggunaan Sumber Untuk membantu menganalisis halaman atau perkhidmatan mana yang paling popular, dengan itu mengoptimumkan peruntukan sumber. Digabungkan dengan atas atau htop, dll.

Cara Menggunakan Log Debian Apache Untuk Meningkatkan Prestasi Laman WebCara Menggunakan Log Debian Apache Untuk Meningkatkan Prestasi Laman WebApr 12, 2025 pm 11:36 PM

Artikel ini akan menerangkan bagaimana untuk meningkatkan prestasi laman web dengan menganalisis log Apache di bawah sistem Debian. 1. Asas Analisis Log Apache Log merekodkan maklumat terperinci semua permintaan HTTP, termasuk alamat IP, timestamp, url permintaan, kaedah HTTP dan kod tindak balas. Dalam sistem Debian, log ini biasanya terletak di direktori/var/log/apache2/access.log dan /var/log/apache2/error.log. Memahami struktur log adalah langkah pertama dalam analisis yang berkesan. 2. Alat Analisis Log Anda boleh menggunakan pelbagai alat untuk menganalisis log Apache: Alat baris arahan: grep, awk, sed dan alat baris arahan lain.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma