本文先讲python脚本启动,后面再讲java的jar启动
一、linux中启动执行python脚本的五种方式(本文以python3为例):
1、第一种方式:python3 文件名,例如:python3 get_file_head_new.py
2、第二种方式:脚本中第一行写入python3 的路径,利用./文件名启动,例如:
3、第三种方式:添加nohup启动,例如:nohup ./get_file_head_new.py
4、第四种方式:添加&启动,例如:./get_file_head_new.py &
5、第五种方式:nohup 加& 方式启动,例如:nohup ./get_file_head_new.py &
下面详细讲解五种启动优缺点:
<1>第一种:python3 文件名,例如:python3 get_file_head_new.py
这种启动方式,Ctrl+C会终止程序,关闭session会话窗口也会终止程序。
<2>第二种:脚本中第一行写入python3 的路径,利用./文件名启动,例如:
脚本首行需要加入python3命令的位置,其可以通过命令 which python 获取,例如:
#!/usr/bin/python
from http.server import HTTPServer
from http.server import SimpleHTTPRequestHandler
hostname= "192.168.159.130"
server_port=10010
server_address = (hostname, server_port)
httpd=HTTPServer(server_address, SimpleHTTPRequestHandler)
httpd.serve_forever()
这种首行添加python3命令的方式,我再使用过成中遇到两个问题,
(1)一个是要给脚本文件赋权限:chmod 777 get_file_head_new.py,否则报权限不够问题:-bash: ./get_file.py: Permission denied。
(2)一个是要将文件转换为unix编码,否则会报错,notepad++就可以转,当然如果没有遇到这个问题,可以忽略不用管。
这种方式,Ctrl+C会终止程序,关闭session会话窗口也会终止程序。
<3>第三种:添加nohup启动,例如:nohup ./get_file_head_new.py
这种方式,Ctrl+C会终止程序,但关闭session会话窗口不会终止程序。
<4>添加&启动,例如:./get_file_head_new.py &
这种方式,Ctrl+C不会终止程序,但关闭session会话窗口会终止程序。
<5>第五种:nohup 加& 方式启动,例如:nohup ./get_file_head_new.py &
这种方式,Ctrl+C不会终止程序,关闭session会话窗口也不会终止程序。
二、java的jar项目启动方式:
1、第一种:java -jar jar包项目名,例如:java -jar decorate-web-1.0-SNAPSHOT.jar
这种方式,Ctrl+C会终止程序,关闭session会话窗口也会终止程序。
2、第一种:java -jar jar包项目名 &,例如:java -jar decorate-web-1.0-SNAPSHOT.jar &
这种方式,Ctrl+C不会终止程序,关闭session会话窗口也不会终止程序。
3、第三种:nohup java -jar jar包项目名 &,例如:nohup java -jar decorate-web-1.0-SNAPSHOT.jar &
这种方式,Ctrl+C不会终止程序,关闭session会话窗口也不会终止程序。
总结:另外,python和java都可以封装.sh文件启动,此文不讨论这种情况。
python后台启动推荐第五种方式,不会受Ctrl+C和关闭session窗口影响。
java后台启动推荐第二种和第三种方式,不会受Ctrl+C和关闭session窗口影响。