web-dev-qa-db-ja.com

Ubuntuの起動時にPythonスクリプトを実行します

起動時に実行する必要がある短いPythonスクリプトがあります-Ubuntu 13.10私は考えられるすべてを試してみましたが、実行させることはできません。スクリプト:

#!/usr/bin/python
import time
with open("/home/username/Desktop/startup.txt", 'a') as f:
    f.write(str(time.time()) + " It worked!")

(実際のスクリプトはテスト用にこれを使用しているだけなので、少し異なりますが、アイデアは得られます。)

次のすべてを試してみましたが、うまくいきませんでした。

  • コマンドpython startuptest.pycrontabに、@reboot python /home/username/Documents/startuptest.pyとして、通常のユーザーとしてもSudoとしても入れます

  • python /home/username/Documents/startuptest.pyにコマンド/etc/rc.localを入れます

  • Ubuntuのスタートアップアプリケーションを開き、そこにコマンドを配置しました

  • 上記のすべてを実行し、コマンドをシェルスクリプトに入れて、代わりにそのシェルスクリプトを呼び出します。

何も動作しません。シンプルなものが欠けているような気がします。何か案は? (端末からコマンドを実行するだけでスクリプトは正常に実行されます。)

39
crypto

これを/etc/initに入れます(Ubuntu 15.xでは/etc/systemdを使用します)

mystartupscript.conf

start on runlevel [2345]
stop on runlevel [!2345]

exec /path/to/script.py

そこにこのconfファイルを配置することにより、起動時にサービスを実行するubuntuの pstart サービスにフックします。

手動の開始/停止は、Sudo service mystartupscript startおよびSudo service mystartupscript stopを使用して行われます

29
RickyA

説明書

  • pythonファイルを/ binにコピーします。

    Sudo cp -i /path/to/your_script.py /bin

  • 新しいCronジョブを追加します。

    Sudo crontab -e

    一番下までスクロールして、次の行を追加します(すべての#'sの後に):

    @reboot python /bin/your_script.py &

    行の最後にある「&」は、コマンドがバックグラウンドで実行され、システムの起動を停止しないことを意味します。

  • 試して:

    Sudo reboot

実際の例:

  • このファイルをデスクトップに追加します。test_code.py(実行して、動作することを確認します)

    from os.path import expanduser
    import datetime
    
    file = open(expanduser("~") + '/Desktop/HERE.txt', 'w')
    file.write("It worked!\n" + str(datetime.datetime.now()))
    file.close()
    
  • 次のコマンドを実行します。

    Sudo cp -i ~/Desktop/test_code.py /bin

    Sudo crontab -e

  • 次の行を追加して保存します。

    @reboot python /bin/test_code.py &

  • コンピューターを再起動すると、デスクトップに新しいファイルが見つかります:HERE.txt

18
João Cartucho

Ubuntuを使用している場合は、Pythonファイルのコード以外のコードを記述する必要はありません手順は次のとおりです:-

  • ダッシュ(サイドバーの最初のアイコン)を開きます。
  • 次に、「スタートアップアプリケーション」と入力して、そのアプリを開きます。
  • 右側のボタンの追加をクリックします。
  • そこで詳細を入力し、コマンドエリアでPythonファイルを参照して[OK]をクリックします。
  • Restarting Systemでテストします。完了しました。楽しい !!
6
Aditya Agarwal

〜/ .config/autostart/MyScript.desktopファイルを作成します

[Desktop Entry]
Encoding=UTF-8
Name=MyScript
Comment=MyScript
Icon=gnome-info
Exec=python /home/your_path/script.py
Terminal=false
Type=Application
Categories=

X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=0

それはわたしを助ける!

3
id614515

同様の状況では、次のようなものを/etc/rc.localに入れてうまくやった。

cd /path/to/my/script
./my_script.py &
cd -
echo `date +%Y-%b-%d_%H:%M:%S` > /tmp/ran_rc_local  # check that rc.local ran

これは、Fedoraの複数のバージョンとUbuntu 14.04 LTSで、pythonとPerlスクリプトの両方で機能しました。

1
jazcap53