web-dev-qa-db-ja.com

OS起動時にPythonスクリプトを実行

これは繰り返された質問かもしれませんが、私はそれを行う正しい方法を見つけることができません。

私の場合は何ですか? -> Pythonスクリプトを実行したい。

pythonスクリプトは簡単に何をしますか? -> pythonスクリプトを実行して、仮想プライベートネットワークをセットアップします。

現在、手動で起動するにはどうすればよいですか? -> i ./file.py startを使用します(これは動作します)

何が機能していないのですか? ->最初から起動しようとすると(ブート)、何も実行されません。私はまったく動作していないcronジョブを使用していますが、それを使用したくないので、/etc/init.d/を使用します。

これは/etc/init/xxx.confのfile.confです

description "file start script"
author "sijan <[email protected]>"



exec python file.py start
exec sleep 10
exec ifconfig ip0 11.0.2.251

exec ip=`ifconfig ip0 | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`

exec echo $ip >>/tmp/ip.log

/etc/init.d/file.pyにpythonファイルを追加しました

私はシステムレベルの非常に新しいので、これを行うための正しい手順に従っていない可能性がありますが、処理方法に関するアイデアは高く評価されています。私はこれを修正して学びたいと非常に熱望しています

5
Sijan Shrestha

スクリプトを/etc/rc.localに配置します。システムの起動時に、そこにあるスクリプトがルートとして実行されます。コメントで指定したように、Raspberry Piにも適しています。

あなたの場合、python /path/to/script.py &として実行したい

これが私のrc.localファイルです。同じアプローチを使用して、バッテリーと温度の監視スクリプトを実行します

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/home/xieerqi/bin/batmon.sh &
/home/xieerqi/bin/preventShutdown.sh &
/home/xieerqi/bin/sh/temperature.sh  &

/etc/rc.localに関する追加情報

10

また、 cronでこれを行うcrontabに追加して:

@reboot username python /python/to/file.py

または ユーザー名は不要 があります。


[編集]

このアプローチには2つの注意事項があります。

  1. cronデーモンが実行されている必要があります(通常の状況ではそうです)。
  2. スクリプトまたはcrontabファイルには、必要な環境変数(存在する場合)を含める必要があります。
0
James Bradbury

メールアドレスの後に文字列の引用を終了する必要があるように見えます。そうでない場合、他のコードは著者文字列の一部とみなされます。

0