由於在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吧
