Linux控制台中保持程序运行方法

1.使用&

使用&符号后程序会保持在后台,但这样不易观察运行日志

# 执行文件
./test.py &
 
# 查看是否在后台运行
ps -ef|grep test
 
# 后台的程序 需要关闭时,需要kill命令停止
killall [程序名]

2. 使用nohup

nohup(no hang up)命令可以忽略挂起信号,即使你退出 SSH,它也能让程序继续运行。可以使用tail -f跟踪日志文件末尾来实时查看运行输出。

nohup your_command > output.log 2>&1 &
tail -f output.log

# nohup以如下方式使用sudo
nohup sudo python -u test.py > test.log2>&1 &
  • your_command:你要运行的程序或脚本
  • > output.log:标准输出重定向到 output.log
  • 2>&1:标准错误也重定向到标准输出
  • &:后台运行

其问题在于不便于停止程序,需要手动使用top等方法查询进程pid后手动kill,若是运行了多进程程序则更麻烦。

3. 使用screen

screen是终端复用器,用于开启虚拟终端窗口,即使 SSH 断开后会话也能继续保持运行

常用命令:

命令功能
screen新建一个 screen 会话
screen -S name新建一个名为 name 的会话
screen -ls列出所有会话
screen -r name重新连接名为 name 的会话
screen -X -S name quit关闭名为 name 的会话

会话内快捷键:

screen 的快捷键都以 Ctrl + a 开头(和 tmux 的 Ctrl+b 对应):

按键组合功能
Ctrl+a 然后 d脱离会话
Ctrl+a 然后 c新建窗口
Ctrl+a 然后 n/p下一个/上一个窗口
Ctrl+a 然后 "列出窗口并选择
Ctrl+a 然后 A重命名窗口
Ctrl+a 然后 ?查看帮助

相当于开启了一个保持在后台的虚拟终端,不会随着当前实际终端的关闭而关闭,可以在进入这个会话后运行想运行的程序。

声明:存在AI生成内容

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇