场景:
Python程序执行需要很长的时间或者需要一直在跑,或者需要打印并记录很多信息
策略:
后台运行程序,然后把打印信息保存在指定的文件中,等程序运行结束后,再检查输出日志或者实时观察日志。
1、启动命令:
1、一般使用
nohup python -u Job.py > log.log 2>&1 &
2、只记录异常日志
(推荐)
# nohup python -u Job.py >/dev/null 2>error.log 2>&1 &
3、不记录任何日志
# nohup python -u Job.py >/dev/null 2>&1 &
说明:
1. 末尾的“&”:表示后台运行程序
2. “nohup” :保证程序不被挂起
3. “python”:是执行python代码的命令
4. “-u”:表示不启用缓存,实时输出打印信息到日志文件(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)
5. “Job.py”:是python的源代码文件
6. “log.log”:是输出的日志文件
7. “>”:是指将打印信息指定到日志文件
8. “2>&1”:将标准错误输出转变化标准输出,可以将错误信息也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr)
2、关闭命令
1、查看进程
# ps -ef|grep python
# ps -ef|grep Job
2、关闭进程
# kill -9 19913
用1中查看进程的命令,检查或确认进程是否真正被关闭。
场景:Python程序执行需要很长的时间或者需要一直在跑,或者需要打印并记录很多信息策略:后台运行程序,然后把打印信息保存在指定的文件中,等程序运行结束后,再检查输出日志或者实时观察日志。1、启动命令:1、一般使用nohup python -u Job.py > log.log 2>&1 &2、只记录异常日志(推荐)# nohup pyth...
unhup
python
文件
名.py (> ***.log )&
在这个命令中,
python
指定我们要执行的
文件
为
python
文件
,后面的
文件
名.py即是我们要执行的
文件
。括号内容表示可以将平时
输出
到控制台中的内容重定向到*.log这个
文件
中,这个是可选的,如果没有这个,则会默认
输出
到nohup.out
文件
中。括号后面你的&表示
后台运行
。
2.第二种方法是写一个脚本,然后把脚本提交给服务器,让服务器在
后台运行
脚本里面的语句。假设我们定义了一个脚本start.sh,其内容如下:
#!/bin/bash
cd 想要运行文
前台运行
程序
十分的不稳定,当xshell断掉之后,
程序
也就断掉了。然后同学向我推荐了nohup命令,于是我就非常愉快的使用起来啦~
之前听过这个命令,但是没有太在意它的作用和用法,这次是有需要了,所以就学习了一下。看了一些博客,写的全是那一套,根本没有什么自己的理解和详细的解释说明。为了自己以后查看以及帮助更多的人用这个命令解决困扰,所以这篇博客就诞生啦~
直接上命令:
nohup
python
-u main.py > log.file 2> &1 &
命令解释:
1.1 直接启动
介绍的第一种方式呢就比较简单粗暴。这种方式如果使用 ctrl+c ,
程序
就会终止了
如果运行的
python
脚本执行时间较快,可以使用这种方式同时也方便查看
日志
[xxx@single xxx]#
python
run_test.py
注意:
python
这个命令,需要和系统内的配置相.
解决:Javal连接mysql失败Could not create connection to database server. Attempted reconnect 3 times. Giving
秃头的小鬼:
解决:Javal连接mysql失败Could not create connection to database server. Attempted reconnect 3 times. Giving
春风化作秋雨:
解决:Javal连接mysql失败Could not create connection to database server. Attempted reconnect 3 times. Giving
秃头的小鬼: