#多個關聯的python程序在linux后台運行


由於在shell腳本中直接使用&符號和python程序有沖突,不能正常的進入后台執行python(多番嘗試python xxx.py &,后面的&總是不能正常識別.系統centos7).所以需要用到幾種不同的方式來啟動python

  • nohup
nohup python run_server.py 
  • ()
(python run_server.py)
  • screen 推薦的方式
screen python run_server.py

腳本中使用

#!/bin/bash
#  echo "/bin/bash /opt/startjms.sh" and chmod +x /etc/rc.d/rc.local 

# env 
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
PATH=$PATH:$HOME/bin
export PATH
source /opt/py3/bin/activate


#open screen terminal
screen_name1="server1"
screen -dmS $screen_name1

screen_name2="server2"
screen -dmS $screen_name2

#trans cmd to screen terminal
screen -x -S $screen_name1 -p 0 -X stuff "python /opt/$screen_name1/run_server.py all\n"

cmd="python /opt/$screen_name2/run_server.py"
screen -x -S $screen_name2 -p 0 -X stuff "$cmd"
screen -x -S $screen_name2 -p 0 -X stuff $'\n'
  • systemd
    這些都不能的話,老老實實用systemctl吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM