Linux系统中,后台程序通常指的是在用户注销或终端关闭后仍继续运行的进程,以下是几种常见的将任务放到后台运行的方法:
使用&
符号
-
基本用法:在命令末尾添加
&
符号,可以将任务立即放入后台执行,要在后台下载一个大文件,可以使用以下命令:wget http://example.com/largefile.zip &
此命令会立即返回终端提示符,允许您继续执行其他命令,而
wget
下载过程将在后台进行。 -
注意事项:通过这种方式启动的后台任务在关闭终端时会被自动终止,除非它们已经脱离了终端(如通过重定向输出或使用
nohup
)。
使用nohup
命令
-
基本用法:
nohup
(no hang up)命令用于运行一个命令,即使退出登录或关闭终端,该命令也会继续执行,它通常与&
结合使用,以确保任务不仅在后台运行,还能在会话结束后继续存活。nohup wget http://example.com/largefile.zip &
nohup
会自动将输出重定向到一个名为nohup.out
的文件(除非另有指定),从而避免输出信息干扰当前终端。nohup
还会忽略所有挂断信号(SIGHUP),确保任务不会因为终端关闭而中断。 -
高级用法:您可以将标准输出和标准错误输出重定向到自定义文件中,以便更好地管理日志。
nohup python train.py > output.log 2>&1 &
这将把
python train.py
的标准输出和标准错误输出都重定向到output.log
文件中。
使用screen
或tmux
-
screen
:screen
是一个虚拟终端工具,允许您创建多个会话,并在需要时断开和重新连接这些会话,这对于长时间运行的任务非常有用,要启动一个新的screen
会话并运行一个任务,可以执行以下命令:screen -S mysession python train.py
然后按
Ctrl+A
,再按D
来分离(detach)当前会话,稍后可以通过screen -r mysession
重新连接该会话。 -
tmux
:tmux
的功能与screen
类似,但提供了更丰富的配置选项和更现代化的界面,要启动一个新的tmux
会话并运行一个任务,可以执行以下命令:tmux new -s mysession python train.py
然后按
Ctrl+B
,再按D
来分离(detach)当前会话,稍后可以通过tmux attach -t mysession
重新连接该会话。
使用disown
命令
- 基本用法:对于已经在前台启动的任务,您可以通过暂停(
Ctrl+Z
)、将任务转为后台(bg
)、然后使用disown
命令来使其独立于当前终端。./long_running_script.sh # 按Ctrl+Z暂停任务 bg # 将任务转为后台 disown %1
这将确保即使关闭终端,该任务也不会被终止。
监控和管理后台任务
-
查看后台任务:使用
jobs
命令可以列出当前shell会话中的所有后台作业。jobs -l
这将显示所有后台作业及其对应的进程ID(PID)。
-
将后台任务调回前台:使用
fg %jobnumber
可以将指定的后台作业调回前台。fg %1
这将把作业编号为1的任务调回前台。
-
终止后台任务:使用
kill
命令可以通过发送信号(默认为SIGTERM)来终止指定的后台进程。kill -9 <PID>
这将强制终止指定PID的进程,使用
kill -9
时要特别小心,因为它会强制终止进程,可能会导致数据丢失或其他不可预知的问题。
以下是几种常见的Linux爆破工具及其使用方法:
工具名称 | 安装命令 | 示例命令(以SSH为例) | 说明 |
---|---|---|---|
Hydra | sudo apt-get install hydra |
hydra -l root -P passwords.txt 192.168.1.100 ssh |
Hydra是一个强大的网络登录破解工具,支持多种协议和服务,它可以执行暴力破解、字典攻击等多种攻击方式。 |
Medusa | sudo apt-get install medusa |
medusa -u root -P passwords.txt -h 192.168.1.100 -M ssh |
Medusa是另一个常用的爆破工具,支持FTP、SSH、HTTP等多种协议,它同样支持暴力破解和字典攻击。 |
Ncrack | sudo apt-get install ncrack |
ncrack -U users.txt -P passwords.txt 192.168.1.100:22 |
Ncrack是一个高速的网络认证破解工具,主要用于破解各种网络服务的密码,如SSH、RDP等。 |
John the Ripper | sudo apt-get install john |
john --wordlist=passwords.txt /etc/shadow |
John the Ripper是一款密码破解软件,可用于破解各种类型的密码,包括UNIX密码、Windows哈希等。 |
THC-Hydra | sudo apt-get install thc-hydra |
thc-hydra -l root -P passwords.txt 192.168.1.100 ssh |
THC-Hydra是另一个流行的登录爆破工具,支持多种协议和服务。 |
FAQs
Q1: 如何安全地终止一个顽固的后台进程?
A1: 如果一个后台进程无法通过常规的kill
命令终止,您可以尝试使用kill -9 <PID>
来强制终止它,但是请谨慎使用此命令,因为它会强制终止进程,可能会导致数据丢失或其他不可预知的问题,建议首先尝试使用kill <PID>
发送SIGTERM信号,如果进程没有响应再使用kill -9
。
Q2: 如何在不中断现有会话的情况下更新或升级软件包?
A2: 在Linux系统中,您可以使用screen
或tmux
来创建一个持久的会话,并在其中运行需要长时间执行的任务,这样即使您断开连接或关闭终端,任务也会继续运行,使用screen
时,可以创建一个新的会话并在其中运行更新命令:
screen -S update_session apt-get update && apt-get upgrade -y
然后按Ctrl+A
,再按D
来分离(detach)当前会话,稍后可以通过screen -r update_session
重新连接该会话并检查更新进度
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/73228.html