起動時に実行する必要がある短い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.py
をcrontab
に、@reboot python /home/username/Documents/startuptest.py
として、通常のユーザーとしてもSudo
としても入れます
python /home/username/Documents/startuptest.py
にコマンド/etc/rc.local
を入れます
Ubuntuのスタートアップアプリケーションを開き、そこにコマンドを配置しました
上記のすべてを実行し、コマンドをシェルスクリプトに入れて、代わりにそのシェルスクリプトを呼び出します。
何も動作しません。シンプルなものが欠けているような気がします。何か案は? (端末からコマンドを実行するだけでスクリプトは正常に実行されます。)
これを/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
を使用して行われます
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
Ubuntuを使用している場合は、Pythonファイルのコード以外のコードを記述する必要はありません手順は次のとおりです:-
〜/ .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
それはわたしを助ける!
同様の状況では、次のようなものを/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スクリプトの両方で機能しました。