一、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 管理服务器后台进程,在服务器重启和脚本出错后,可以完美重启,推荐。
如果你有服务器权限的话直接exec命令调用python命令行就行了
php文件:testphp
<phpexec("python hwpy",$array,$ret);
echo("result: ");
print_r($array);
echo("return value: "$ret);
>
py文件:hwpy(与php同一目录)
print ("Hello World");php执行结果:
result: Array ( [0] => Hello World ) return value: 0
Python搭建网站比搭建服务器容易得多,因为Python有许多强大的Web框架,如Django、Flask等,可以让你快速搭建出功能强大的网站。而搭建服务器则需要更多的知识和技能,比如网络安全、系统管理等,需要更多的时间和精力去学习和实践。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)