1. 程式人生 > >(轉載)在後臺執行Python指令碼服務

(轉載)在後臺執行Python指令碼服務

在伺服器,程式都是後臺執行的,當寫的python指令碼時,需要:

你要是想python robot.py & 是不行的,一旦使用者登出,指令碼就自動退出了。
用at, cron也可以實現。

使用 nohup命令,可以忽略登出的訊號:
nohup python robot.py &
如果想要把 python裡面 print的記錄出來,可以在啟動時使用:
nohup python robot.py & > ./log/log1.log
檢視後臺執行的Python——pid
ps -ef |grep python
linux中根據程序的PID值來查詢執行檔案的及其路徑
lsof -p PID

fg 命令(foreground)將後臺執行的程序調到前臺來執行。
fg %n
這裡的njobs看到的jobnumber
執行 jobs
這裡寫圖片描述

還有下列命令可以用來操縱程序任務:
ps 列出系統中正在執行的程序
kill 傳送訊號給一個或多個程序(經常用來殺死一個程序)
jobs 列出屬於當前使用者的程序
bg 將程序搬到後臺執行(Background)
fg 將程序搬到前臺執行(Foreground)

另外:
發現程式 切換到後臺執行後,有時會出現 編碼問題: ‘ascii’ codec can’t encode characters in position …
並且我也就 在檔案頭 聲明瞭 :# coding=utf-8
出現這種情況,注意加上:
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)
這幾行程式碼。