当前位置:首页 » 编程语言 » pythonnohup

pythonnohup

发布时间: 2022-04-14 03:59:45

‘壹’ 如何用python编写一个程序,在服务器后台运行,每天删除一些文件

首先利用

os.remove() will remove a file.
os.rmdir() will remove an empty directory.
shutil.rmtree() will delete a directory and all its contents.
写你的模块
利用linux crontab定时任务运行这个模块。
还可以以守护进程的方式运行你的脚本。nohup <程序名> &

‘贰’ 直接python程序运行没有问题,nohup运行就出错了,该怎么解决

nohup 和 screen 都可以解决: nohup python script.py & 或者 screen python script.py

‘叁’ 如何远程登录Linux机器并运行Python程序

新手对于没有图形界面的linux远程登录及其操作都充满畏惧。这里介绍一个简单的软件。叫作BitViz。简称BV for short。

一、软件安装
这里使用Putty的一个client软件叫作Bv SshClient. 你可以在putty的官网上找到其链接。

Bitvise Tunnelier

Tunnelier is an SSH and SFTP client for Windows. It is developed and supported professionally by Bitvise. Tunnelier is robust, easy to install, easy to use, and supports all features supported by PuTTY, as well as the following:

graphical SFTP file transfer; 图形界面最喜欢
single-click Remote Desktop tunneling;
auto-reconnecting capability;
dynamic port forwarding through an integrated proxy;
an FTP-to-SFTP protocol bridge. 方便的上传下载和删除操作。
Tunnelier is free for personal use, as well as for indivial commercial use inside organizations. You can download Tunnelier here.
二、熟悉窗口
下面一个例子,是找到python软件安装位置的演示:
1. 首先,我进入到root

步骤一,进入root

2. 输入/home

步骤二,进入home

3. 点击其中子文件夹,即可找到,方便了。

步骤三,找到python文件夹

三、easy_install python library
Example Of python-setuptools Being Installed:
[root@server ~]# yum install python-setuptools

Yum Command To Install python-setuptools-devel:
[root@server ~]#yum install python-setuptools-devel

在linux 下: 使用方法非常简单,在命令行输入“easy_install 参数”即可。
这比我想象的要方便很多!在windows里,我要cmd-cd & easy_install flickrapi
在ssh的命令窗口,只需输入 easy_install flickrapi

如下图:

easy_install flickrapi

四、run python script as a background process in linux

So, you have a server to which you connect remotely, upload a python script and want to run it and logout from the server keeping the program running. If you frequently work with spiders, you surely want to do it. But how to do it? For example if your script's name is script.py, then the command is:

[root@server ~]# nohup python script.py &

And sometimes you may be interested to see the output is that being generated. Then you should view the nohup.out file! This command can be useful:

[root@server ~]# tail -f nohup.out

‘肆’ 如何优雅的用Python玩转语音聊天机器人

所需硬件:
树莓派B+
人体红外线感应模块
内置麦克风摄像头(实测树莓派免驱淘宝链接)
申请API:
网络语音api
图灵api
语音聊天机器人实现原理:当有人来到跟前时--》触发聊天功能,开始以每2s检测录制语音--》通过网络语音api合成文字--》传递给图灵api返回回答信息--》通过网络语音合成播放
【人体感应识别部分Python代码renti.py】


#/usr/bin/python#coding:utf-8import RPi.GPIO as GPIOimport timeimport osimport signalimport atexitGPIO.setmode(GPIO.BCM) GPIO_PIR = 14 GPIO.setup(GPIO_PIR,GPIO.IN) # Echojing = 0dong = 0 sum = 0sum1 = 0oldren = 0sleep = 0def ganying(): i = 0 ok = 0 error = 0 while i < 10: if GPIO.input(GPIO_PIR) == 1 : ok = ok + 1 if GPIO.input(GPIO_PIR) == 0 : error = error + 1 time.sleep(0.01) i = i + 1 ren = ok/(error+1) return ren

1

GPIO_PIR = 14

为 红外线检测模块与树莓派的针脚,脚本函数返回0表示无人,>0 为有人
【Python语音识别聊天部分robot.py】


#/usr/bin/python# -*- coding:utf-8 -*-import sysreload(sys)sys.setdefaultencoding( "utf-8" )import urllibimport urllib2import jsonimport uuidimport base64import osimport timefrom renti import * #获取网络tokenappid=7647466apikey="网络API"secretkey="网络API" _url="h.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apikey + "&client_secret=" + secretkey; y_post=urllib2.urlopen(_url)y_read=y_post.read()y_token=json.loads(y_read)['access_token']#print y_read#print y_token #------------------function------------- def luyin(): os.system('arecord -D plughw:1,0 -c 1 -d 2 1.wav -r 8000 -f S16_LE 2>/dev/null') def fanyi():
#---------------语音识别部分 mac_address="haogeoyes" with open("1.wav",'rb') as f: s_file = f.read() speech_base64=base64.b64encode(s_file).decode('utf-8') speech_length=len(s_file) data_dict = {'format':'wav', 'rate':8000, 'channel':1, 'cuid':mac_address, 'token':y_token, 'lan':'zh', 'speech':speech_base64, 'len':speech_length} json_data = json.mps(data_dict).encode('utf-8') json_length = len(json_data) asr_server = 'm/server_api' request = urllib2.Request(url=asr_server) request.add_header("Content-Type", "application/json") request.add_header("Content-Length", json_length) fs = urllib2.urlopen(url=request, data=json_data) result_str = fs.read().decode('utf-8') json_resp = json.loads(result_str) if json_resp.has_key('result'): out_txt=json_resp['result'][0] else: out_txt="Null" return out_txt def tuling(b): f=urllib.urlopen("23.com/openapi/api?key="此处为图灵API"&info=%s" % b) f=json.loads(f.read())['text'] return f def hecheng(text,y_token): #text="你好我是机器人牛牛很高兴能够认识你" geturl="u.com/text2audio?tex="+text+"&lan=zh&per=1&pit=9&spd=6&cuid=CCyo6UGf16ggKZGwGpQYL9Gx&ctp=1&tok="+y_token return os.system('omxplayer "%s" > /dev/null 2>&1 '%(geturl)) #return os.system('omxplayer "%s" > /dev/null 2>&1 '%(geturl)) def nowtime(): return time.strftime('%Y-%m-%d %H:%M:%S ') #---------------main-----------------num=0 #num用来判断是第一次说话,还是在对话过程中first=1 #判断是不是第一说话 当1000次没有人动认为是第一次while True: if ganying()!=0: run=open('run.log','a') if first==0: hecheng("你好,我是牛牛机器人,你可以和我聊天,不过说话的时候你必须靠近话筒近一点,",y_token) hecheng("说点什么吧,2秒钟内说完哦.",y_token) first=1 #为1一段时间就不执行 num=0 #从新计数 #print ganying() run.write(nowtime()+"说点神马吧..........."+'\n') print nowtime()+"说点神马吧.........." luyin() #开始录音 out=fanyi().encode("utf-8") #翻译文字 run.write(nowtime()+"我说:"+out+'\n') print nowtime()+"我说:"+out if out == "Null": text="没有听清楚你说什么" os.system('omxplayer "shenme.wav" > /dev/null 2>&1 ') else: text=tuling(out) hecheng(text,y_token) print nowtime()+"牛牛:"+text run.write(nowtime()+"牛牛:"+text+'\n') run.close() else: #print ganying() #调试查看是否为0有人没人 #print num num=num+1 #num长时间增大说明没有人在旁边 if num > 1000: first=0 #0表示第一次说话

万事俱备 运行nohup python robot.py 哈哈就可以脱离屏幕开始愉快的语音聊天啦
下面看看聊天的日志记录吧
后续更新。。。。。。Python如何用语音优雅的控制小车

‘伍’ linux 怎么一直运行python搜索脚本

有两种方式:
1、直接使用python xxxx.py执行。其中python可以写成python的绝对路径。使用which python进行查询。
2、在文件的头部(第一行)写上#!/usr/bin/python2.7,这个地方使用python的绝对路径,就是上面用which python查询来的结果。然后在外面就可以使用./xxx.py执行了。

因为在linux中,python啊shell这些程序都是普通的文本格式,都需要一种程序去解释执行它。要么调用的时候指定,要么在文件头指定。更多linux知识可以看下《linux就该这么学》

‘陆’ python 新手问题啊,为什么我运行一个python程序,另一个就会自动退出呢始终只能运行一个

两个程序基本一样,可以开多线程,threading。然后在不同的地方分别开一个线程运行,没必要运行两个程序。

‘柒’ 在虚拟主机中安装了python程序,如何使它在服务器上自动运行

nohup 和 screen 都可以解决:

nohup python script.py &

或者

screen python script.py

‘捌’ php 执行python脚本的时候 已经安装python模块能正常使用么

一般是环境变量问题,你的执行一个sh的set命令看看结果吧。
解决办法,在sh文件里面设置好环境变量再调用python脚本。

‘玖’ 如何让 Python 代码常驻在服务器进程中

一、nohup

nohup,即 no hangup,nohup 的用途就是让提交的命令忽略 hangup 信号,从而使我们的进程避免中途被中断。它可以让 python 脚本和服务器连接端的 session 分离,以达到退出后依旧执行:

$ chmod +x /your_path/yourscript.py # 先设置可执行权限$ nohup python /your_path/yourscript.py# 切记退出的 Terminal 的时候,不要 ctrl+c 退出,而是直接关闭,不然 Nohup 就被你关闭了。

如何关闭这个一直执行的进程呢:

# 找到对应的进程 PID
$ ps -ef | grep python

# 返回内容如:
user 2430 1 0 Jul03 ? 00:00:01 /usr/bin/python -tt /usr/sbin/yum-updatesd

# kill 掉该进程即可:
$ kill -9 2430

PS:nohup 在服务器重启之后就失效了,所以并不完美。

二、将命令写入 Linux 启动脚本

Linux 在启动的时候会执行 /etc/rc.local 里面的脚本,所以只要在这里添加执行命令就可以:

$ vim /etc/rc.local

# 如果是 Centos 添加以下内容:
/your_path/python3.4 /your_path/yourscript.py

# 以上内容需要添加在 exit 命令前,而且由于在执行 rc.local 脚本时,PATH 环境变量未全部初始化,因此命令需要使用绝对路径。

PS:这种方式的缺点是如果脚本挂了,那么不会自动重新启动。

三、使用 Supervisor 进程管理工具

详见这篇文章:使用 Supervisor 管理服务器后台进程,在服务器重启和脚本出错后,可以完美重启,推荐。

‘拾’ python后台怎么限制上传文件个数

并不建议用screen,因为screen一般用于远程工作时能够多窗口工作和避免网络断开造成工作丢失。
毕竟你这是一个单独的服务,用nohup更好,他可以帮你屏蔽HUNGUP信号,从而避免在链接断开时后台进程也被杀死。
我一般这样用:
nohup command 2>&1 &

热点内容
go语言编译模式 发布:2025-01-20 19:57:25 浏览:405
超能编程 发布:2025-01-20 19:56:26 浏览:1000
安卓手机怎么连蓝牙汽车 发布:2025-01-20 19:39:05 浏览:253
保定军工存储厂家 发布:2025-01-20 19:38:53 浏览:795
云服务器ecs服务条款 发布:2025-01-20 19:19:36 浏览:47
安卓系统显示屏怎么设置屏保 发布:2025-01-20 19:18:53 浏览:896
有锁机和配置锁哪个好 发布:2025-01-20 19:18:05 浏览:767
安卓版软件如何设置 发布:2025-01-20 18:58:53 浏览:58
java中级项目案例 发布:2025-01-20 18:58:52 浏览:913
sql日志查看工具 发布:2025-01-20 18:57:12 浏览:243