如何讓python腳本後台持續運行
❶ CentOS下後台運行python腳本及關閉腳本的一些操作
自己寫了一個python腳本,但是直接遠程用putty連接後#python xxx.py執行,關閉putty腳本也隨之關閉了,這里需要用到『setsid』這個命令。
#setsid python xxx.py
如此即可將腳本加入到後台執行
若想查看所有後台運行的進程
#ps -aux
這里可以看到每個進程都有一個PID,如果想殺死這個進程,則使用
#kill-9[PID]-9表示強迫進程立即停止
nohup python -u test.py > out.log 2>&1 &
❷ 如何在伺服器上部署Django項目並使其在後台一直運行
前幾天老師讓我把一個Django項目(爬蟲網頁)放到校園內網上,但是我想先用自己的伺服器來嘗試一下。之前剛好有在Digital Ocean上買過伺服器用來運行ss腳本,平時伺服器一直放著沒啥用,所以就拿它來試驗一下。
廢話不多說,第一步通過WinSCP軟體把Django文件傳到伺服器上。
在伺服器中安裝Django需要的環境和我所需要的Python第三方庫。
以上所有步驟完成後,還需要進行一步操作,這是我經歷的一個 坑 。 打開Django文件目錄中的 settings.py ,把 ALLOWED_HOSTS=[] 改為 ALLOWED_HOSTS=["*"] 。
在伺服器中打開到 manage.py 所在的目錄,輸入命令:
python3 manage.py runserver 0.0.0.0:8000
然後按下回車,在瀏覽器中輸入: 該伺服器IP地址:8000 ,大功告成!
Attention:
1. python3 不是特定的,是根據你的Django項目所需要的環境指定的。
2. 8000 是埠號,可以修改。
如果想要Django項目一直運行,關閉終端後還在運行,即需要運行如下命令, nohup command & , command 即位上文所說的 python3 manage.py runserver 0.0.0.0:8000 。
❸ 如何讓py腳本持續執行
1.新建一個文本文件:
將文件名稱更改為 HelloWorld.py, 注意要修改文件的後綴名字。
2.使用記事本打開這個文件,在裡面敲入如下代碼:
[python]viewplain
importsys,os
defPrintSomeThing():
print(os.path.dirname(os.sys.argv[0]))
raw_input()
if__name__=="__main__":
PrintSomeThing()
3.雙擊運行該文件即可。
❹ 如何讓 Python 代碼常駐在伺服器進程中
一、nohup
nohup,即 no hangup,nohup 的用途就是讓提交的命令忽略 hangup 信號,從而使我們的進程避免中途被中斷。它可以讓 python 腳本和伺服器連接端的 session 分離,以達到退出後依舊執行:
$ chmod +x /your_path/yourscript.py # 先設置可執行許可權$ nohup python /your_path/yourscript.py# 切記退出的 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/rc.local 裡面的腳本,所以只要在這里添加執行命令就可以:
$ vim /etc/rc.local
# 如果是 Centos 添加以下內容:
/your_path/python3.4 /your_path/yourscript.py
# 以上內容需要添加在 exit 命令前,而且由於在執行 rc.local 腳本時,PATH 環境變數未全部初始化,因此命令需要使用絕對路徑。
PS:這種方式的缺點是如果腳本掛了,那麼不會自動重新啟動。
三、使用 Supervisor 進程管理工具
詳見這篇文章:使用 Supervisor 管理伺服器後台進程,在伺服器重啟和腳本出錯後,可以完美重啟,推薦。
