Linux 让程序在后台执行

有些程序我们在打开时,会一直占用我们的终端,而且终端还不能关掉,所以这时候我们就需要让程序在后台运行。

1.命令:nohup

nohup python -u run.py > run.log 2>&1 &

参数说明: run.py: 你需要后台运行的程序.

>: 日志文件追加到文件中

run.log: 运行的日志,或你的文件的输出内容.

& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。

1>&2 意思是把标准输出重定向到标准错误.

2>&1 意思是把标准错误输出重定向到标准输出。

&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

这条命令的意思是,执行run.py程序,并把程序中执行的情况记录到run.log文件中,包括程序异常、程序中打印的信息等。

2.若直接使用下面命令呢?

nohup python run.py &

1    这样运行,在run.py的目录默认直接生成了nohup.out文件,但是内容始终是空的.

原因如下↓↓:

python的输出又缓冲,导致out.log并不能够马上看到输出。     -u 参数,使得python不启用缓冲。

解决

nohup python -u run.py > run.log 2>&1 &

1

如果权限不够的话就

nohup sudo python -u flush.py > flush.log2>&1 & --------------------- 作者:来自外星的一只猿 来源:CSDN 原文:

--------------------- 作者:来自外星的一只猿 来源:CSDN 原文:https://blog.csdn.net/aa1209551258/article/details/81705150 版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/20e8/p/11040541.html

时间: 2024-11-07 15:11:13

Linux 让程序在后台执行的相关文章

linux shell 创建并发后台执行任务并等待任务执行完成

#!/bin/bash echo "i am main" for i in $(seq 1 5) do { sleep 10; echo "i am $i"; }& done wait http://www.cnblogs.com/dorothychai/archive/2012/10/19/2730374.html linux shell 创建并发后台执行任务并等待任务执行完成

linux 让程序在后台运行的几种可靠方法

我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题. 先介绍一下hangup 名称的来由 在 Unix 的早期版本中,每个终端都会通过 modem 和系统通讯.当用户 logout 时,modem 就会挂断(hang up)电话. 同理,当 modem 断开连接时,就

如何让程序在后台执行

示例:查看系统负载的脚本 #!/bin/sh while true do uptime >/tmp/uptime.log sleep 1 done [[email protected] scripts]# tail -f /tmp/uptime.log 21:37:26 up 5:49, 2 users, load average: 0.00, 0.00, 0.00 tail: /tmp/uptime.log: file truncated 21:37:27 up 5:49, 2 users,

Python中如何把程序放到后台执行

直接上代码: [[email protected] pythonscript]# cat getio.py #!/usr/bin/env python #encoding:utf8 import sys,time,os,platform #定义我自己要在后台运行的程序 def getio(): while True: os.system("/usr/sbin/iotop -n 2 -b -o -k >>/root/iotop.log") time.sleep(10) #fo

【Linux笔记】在后台执行scp,实现服务器间无密码文件拷贝。

远程备份大容量时常会有这样的情形:从远程备份的文件很大,需要很长时间,想在退出ssh后程序依然能继续在后台下载,可以通过建立服务器间安全信息关系和nohup的方式解决. 有两台服务器:A服务器IP 192.168.3.100.B服务器IP 121.41.111.46. 一.建立服务器之间的安全信任关系证书 1.在A服务器生成密钥配对 在A服务器生成配对密钥,遇到提示时保持默认敲回车即可, [[email protected] ~]#ssh-keygen -t rsa 该公钥被保存的用户宿主目录的

如何在linux的Oracle上后台执行SQL

场景:如果你要收集库的统计信息,大概要7-8个小时,你又要把自己的电脑关掉,想在服务器上执行,用下列方法. nohup sqlplus user/[email protected] @xxx.sql >run.log & 执行上面的语句后,关闭远程窗口,通过v$session和v$session_wait查看是在跑.也可以通过user_tables的最后分析时间.

隐藏CMD窗口,使程序在后台执行

@echo off if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin 代码放在此处即可 参考链接: https://jingyan.baidu.com/article/cb5d6

Linux和Windows启动后台程序

平时很多时候,我们需要通过脚本命令调用执行程序,集成一体后方便使用快捷.但是启动脚本窗口比较碍眼,能设置为后台运行既方便又美观. Linux启动后台程序 1.后台执行 nohup方法:不挂断的运行命令. 在执行命令语句前加上 nohup &方法:后台运行.在执行命令语句后加上 & 两种方法一般一起使用 例: nohup  command  & 2.查看进程:输入 ps -ef | grep ps:将某个进程显示出来 -A 显示所有程序.  -e 此参数的效果和指定"A&q

Linux命令后台执行技巧小结

1.最简单的方法: command & 例如: top & 此时显示job编号和后台进程号 [1] 14814 2.正在运行的程序放入后台 Ctrl - Z 3.查看有哪些后台进程及状态 jobs 4.将后台进程切换到前台执行 fg job编号 5.让后台暂停的进程继续执行 bg job编号 6.杀死后台执行程序 kill %job编号 7.让程序在后台执行,关闭终端也不退出 例如一个不断输出程序test.sh,如下 while [ True ] do echo hello sleep 1