linux运行python文件 报sh错误_Liunx 设置后台执行python程序,Linux 后台运行python .sh等程序,以及查看和关闭后台运行程序操作...

1、运行.sh文件

直接用./sh 文件就可以运行,然则若是想后台运行,纵然关闭当前的终端也可以运行的话,需要nohup下令和&下令。

(1)&下令

功效:加在一个下令的最后,可以把这个下令放在后台执行

(2)nohup下令

功效:不挂断的运行下令

2、查看当前后台运行的下令

有两个下令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的义务,换了终端就看不到了。而ps下令用于查看瞬间历程的动态,可以看到其余终端运行的后台历程。

(1)jobs下令

功效:查看当前终端后台运行的义务

jobs -l选项可显示当前终端所有义务的PID,

jobs的状态可以是running,stopped,Terminated。+ 号示意当前义务,- 号示意后一个义务。

(2)ps下令

功效:查看当前的所有历程 ps -aux |

grep

“test.sh”

#a:显示所有程序 u:以用户为主的花样来显示 x:显示所有程序,不以终端机来区分

3、关闭当前后台运行的下令

kill下令:竣事历程 (

1)通过jobs下令查看jobnum,然后执行

kill %jobnum (

2)通过ps下令查看历程号PID,然后执行

kill %PID 若是是前台历程的话,直接执行 Ctrl+c 就可以终止了

4、前后台历程的切换与控制

(1)

fg下令 功效:将后台中的下令调至前台继续运行 若是后台中有多个下令,可以先用

jobs查看jobnun,然后用

fg %jobnum 将选中的下令调出。 (2)Ctrl + z 下令 功效:将一个正在前台执行的下令放到后台,而且处于暂停状态 (3)

bg下令 功效:将一个在后台暂停的下令,酿成在后台继续执行 若是后台中有多个下令,可以先用

jobs查看jobnum,然后用

bg %jobnum 将选中的下令调出继续执行。

5、运行Python示例

[root@xxxxx nlp]#

nohup

python

-u

jbabs

.py >

out

.log 2>&1 &

[1] 20087

[root@xxxxx nlp]#

jobs

[1]+

Running

nohup

python

-u

jbabs

.py >

out

.log 2>&1 &

运行一个Python剧本,通常设置如下

$ python /data/python/server.py >python.log &

说明:

1、 > 示意把尺度输出(STDOUT)重定向到 谁人文件,这里重定向到了python.log

2、 & 示意在后台执行剧本

这样可以到达目的,然则,我们退出shell窗口的时刻,必须用exit下令来退出,否则,退出之后,该历程也会随着shell的消逝而消逝(退出、关闭)

使用nohup(not hang up):

$ nohup python /data/python/server.py > python.log3 2>&1 &

说明:

1、1是尺度输出(STDOUT)的文件描述符,2是尺度错误(STDERR)的文件描述符

1> python.log 简化为 > python.log,示意把尺度输出重定向到python.log这个文件

2、2>&1 示意把尺度错误重定向到尺度输出,这里&1示意尺度输出 , 为什么需要将尺度错误重定向到尺度输出的缘故原由,是由于尺度错误没有缓冲区,而STDOUT有。 这就会导致 commond > python.log ,2> python.log 文件python.log被两次打开,而STDOUT和 STDERR将会竞争笼罩,这一定不是我门想要的

3、好了,我们现在可以直接关闭shell窗口(我用的是SecureCRT,用的比较多的另有Xshell),而不用再输入exit这个下令来退出shell了

$ ps aux|grep python

tomener 1885 0.1 0.4 13120 4528 pts/0 S 15:48 0:00 python /data/python/server.py

tomener 1887 0.0 0.0 5980 752 pts/0 S+ 15:48 0:00 grep python

在当我们直接关闭shell窗口,再连接上服务器,查看Python的历程,发现历程还在

然则,在python运行中却查看不到输出!

由于:

python的输出有缓冲,导致python.log3并不能够马上看到输出。

使用-u参数,使得python不启用缓冲。

kill -STOP 1234    将该历程暂停。

若是要让它恢复到后台,用 kill -CONT 1234(许多在前台运行的程序这样是不行的)

若是要恢复到前台,请在那时运行该历程的谁人终端用jobs下令查询暂停的历程。

然后用 fg 〔job号〕把历程恢复到前台。

以是矫正下令,就可以正常使用了

$ nohup python3 -u crawl_spider.py > out.log

2>&

1 &

在当前

shell

里查看后台义务:jobs

把后台的义务拉到前台运行:

fg %义务号 默认义务1

使用 crl + z 是义务暂停并挂载到后台

使用 bg %义务号 使义务在后台运行

__EOF__

原文链接:https://www.cnblogs.com/luochunxi/p/12824601.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

,

1、运行.sh文件

直接用./sh 文件就可以运行,然则若是想后台运行,纵然关闭当前的终端也可以运行的话,需要nohup下令和&下令。

(1)&下令

功效:加在一个下令的最后,可以把这个下令放在后台执行

(2)nohup下令

功效:不挂断的运行下令

2、查看当前后台运行的下令

有两个下令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的义务,换了终端就看不到了。而ps下令用于查看瞬间历程的动态,可以看到其余终端运行的后台历程。

(1)jobs下令

功效:查看当前终端后台运行的义务

jobs -l选项可显示当前终端所有义务的PID,

jobs的状态可以是running,stopped,Terminated。+ 号示意当前义务,- 号示意后一个义务。

(2)ps下令

功效:查看当前的所有历程 ps -aux |

grep

“test.sh”

#a:显示所有程序 u:以用户为主的花样来显示 x:显示所有程序,不以终端机来区分

3、关闭当前后台运行的下令

kill下令:竣事历程 (

1)通过jobs下令查看jobnum,然后执行

kill %jobnum (

2)通过ps下令查看历程号PID,然后执行

kill %PID 若是是前台历程的话,直接执行 Ctrl+c 就可以终止了

4、前后台历程的切换与控制

(1)

fg下令 功效:将后台中的下令调至前台继续运行 若是后台中有多个下令,可以先用

jobs查看jobnun,然后用

fg %jobnum 将选中的下令调出。 (2)Ctrl + z 下令 功效:将一个正在前台执行的下令放到后台,而且处于暂停状态 (3)

bg下令 功效:将一个在后台暂停的下令,酿成在后台继续执行 若是后台中有多个下令,可以先用

jobs查看jobnum,然后用

bg %jobnum 将选中的下令调出继续执行。

5、运行Python示例

[root@xxxxx nlp]#

nohup

python

-u

jbabs

.py >

out

.log 2>&1 &

[1] 20087

[root@xxxxx nlp]#

jobs

[1]+

Running

nohup

python

-u

jbabs

.py >

out

.log 2>&1 &

运行一个Python剧本,通常设置如下

$ python /data/python/server.py >python.log &

说明:

1、 > 示意把尺度输出(STDOUT)重定向到 谁人文件,这里重定向到了python.log

2、 & 示意在后台执行剧本

这样可以到达目的,然则,我们退出shell窗口的时刻,必须用exit下令来退出,否则,退出之后,该历程也会随着shell的消逝而消逝(退出、关闭)

使用nohup(not hang up):

$ nohup python /data/python/server.py > python.log3 2>&1 &

说明:

1、1是尺度输出(STDOUT)的文件描述符,2是尺度错误(STDERR)的文件描述符

1> python.log 简化为 > python.log,示意把尺度输出重定向到python.log这个文件

2、2>&1 示意把尺度错误重定向到尺度输出,这里&1示意尺度输出 , 为什么需要将尺度错误重定向到尺度输出的缘故原由,是由于尺度错误没有缓冲区,而STDOUT有。 这就会导致 commond > python.log ,2> python.log 文件python.log被两次打开,而STDOUT和 STDERR将会竞争笼罩,这一定不是我门想要的

3、好了,我们现在可以直接关闭shell窗口(我用的是SecureCRT,用的比较多的另有Xshell),而不用再输入exit这个下令来退出shell了

$ ps aux|grep python

tomener 1885 0.1 0.4 13120 4528 pts/0 S 15:48 0:00 python /data/python/server.py

tomener 1887 0.0 0.0 5980 752 pts/0 S+ 15:48 0:00 grep python

在当我们直接关闭shell窗口,再连接上服务器,查看Python的历程,发现历程还在

然则,在python运行中却查看不到输出!

由于:

python的输出有缓冲,导致python.log3并不能够马上看到输出。

使用-u参数,使得python不启用缓冲。

kill -STOP 1234    将该历程暂停。

若是要让它恢复到后台,用 kill -CONT 1234(许多在前台运行的程序这样是不行的)

若是要恢复到前台,请在那时运行该历程的谁人终端用jobs下令查询暂停的历程。

然后用 fg 〔job号〕把历程恢复到前台。

以是矫正下令,就可以正常使用了

$ nohup python3 -u crawl_spider.py > out.log

2>&

1 &

在当前

shell

里查看后台义务:jobs

把后台的义务拉到前台运行:

fg %义务号 默认义务1

使用 crl + z 是义务暂停并挂载到后台

使用 bg %义务号 使义务在后台运行

__EOF__

原文链接:https://www.cnblogs.com/luochunxi/p/12824601.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值