python程序在服务器上跑不起来,好像是因为windows中和linux里的语法分析换行格式不同,怎么改?程序如下:

python程序在服务器上跑不起来,好像是因为windows中和linux里的语法分析换行格式不同,怎么改?程序如下:,第1张

应该和python没关系,是要处理的文件的问题。有点麻烦要看是哪里出的问题,脚本有问题的可能性不大。如果确定只是换行符有问题,在linux下用dos2unix命令可以把要处理的文件从windows格式转成linux的换行格式。不过也就只能做这一件事而已,不确定其他地方有没有问题。
不过如果你的脚本在windows能正常工作,那么linux也应该OK,脚本本身应该是没问题的。

一、nohup

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

$ chmod +x /your_path/yourscriptpy   # 先设置可执行权限$ nohup python /your_path/yourscriptpy# 切记退出的 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/rclocal 里面的脚本,所以只要在这里添加执行命令就可以:

$ vim /etc/rclocal
# 如果是 Centos 添加以下内容:
/your_path/python34 /your_path/yourscriptpy
# 以上内容需要添加在 exit 命令前,而且由于在执行 rclocal 脚本时,PATH 环境变量未全部初始化,因此命令需要使用绝对路径。

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

三、使用 Supervisor 进程管理工具

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

服务器的电脑上添加第二块网卡,用于连接Internet。用域管理员账户在远程访问服务器上登录。为第二块网卡添加公网IP地址
在远程访问服务器上,从“管理工具”中打开,“服务器管理器”窗口,选中“角色”,单击“添加角色”,打开“添加角色向导”窗口。
在d出来的“开始之前”窗口中点击“是”按钮。
单击“下一步”“进入选择服务器角色””窗口,选择“网络策略和访问服务”单击“下一步”。
在“网络策略和访问服务”简介窗口单击“下一步”,在“选择角色服务”窗口选择“路由和远程访问服务”。
接下来会显示安装进度
等安装好了以后,点击关闭就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10272662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存