3

私はこのスクリプトを持っています。バックグラウンドで実行する方法がわかりません。セッションを閉じると、それも閉じます。crontab に配置しようとしましたが、index.html が見つからず、/ にファイルのリストが表示されます。

#! /opt/python3/bin/python3

from http.server import HTTPServer, CGIHTTPRequestHandler

port = 8000

httpd = HTTPServer(('', port), CGIHTTPRequestHandler)
print("Starting simple_httpd on port: " + str(httpd.server_port))
httpd.serve_forever()`
4

1 に答える 1

4

基本的に、シェルからプログラムを切り離す方法について尋ねています...ここにいくつかのオプションがあります

  1. ./scriptname.py >/dev/null 2>&1 & # プログラムをバックグラウンドに送る
  2. gnu-screen (または類似のもの)を使用します ... screen を介してプログラムを実行すると、再度ログインしたときにプログラムを元に戻すことができます
  3. プログラムを適切にデーモン化する

アップデート:

最近、Python でデーモンを 1 つも作成していません。2 回フォークしたり、デーモン ライブラリを使用したりする時代は、かなり遅れているようです。私は現在 Supervisord を使用しており、 circusについて良いことを聞いています。これらは、python デーモンを展開するために使用できる追加オプションのほんの一部です。

于 2013-05-15T16:23:59.147 に答える