Ubuntu Server 17.10で起動時にスクリプトを実行する方法は?

Ubuntu Server 17.10で起動時にスクリプトを実行する方法は?

Ubuntu Server 17.10コンピュータで起動時にスクリプトを実行する方法は? 17.10でメソッドが変更されたようです。

答え1

スクリプトを適切なユーザーcronテーブル(例:予約されたこと)のスケジュールはです@reboot

ユーザーはを使用してcronテーブルを編集できますcrontab -e

起動時に実行される例/path/to/script.sh

@reboot /path/to/script.sh

rootとして実行する必要がある場合は、rootの編集にcrontab@reboot sudo /path/to/script.shを使用しないでください。
sudo crontab -eu root

また見なさい:スケジュールされたタスク(1)、スケジュールされたタスク(8)、スケジュールされたタスク(8)

答え2

Ubuntu 15.04以降では、デフォルトではsystemdサービスとプロセスを自動的に開始するプログラム(一種)であるというプログラムが使用されます。わずかな労力で独自のサービスを作成し、スタートアップサービスリストに追加できます。

基本システムサービス

以下は、Python GUIサーバーの起動に使用するベアボーン.serviceファイルです(シェルスクリプトかもしれませんが、重要ではありません)。

[Unit]
Description=Python GUI Server

[Service]
ExecStart=/home/pi/software/GUI_POE.py &

[Install]
WantedBy=multi-user.target

オプションDescriptionは、サービスが何であるか、何をしているかを説明する文字列です。

このExecStartオプションは、実行するコマンドを指定します。ここでは、実行可能なPythonスクリプトへのパスを提供し、&トークンを使用してバックグラウンドでそれを実行します。

このWantedByオプションは、このサービスを使用するターゲットに基づいて優先順位を指定します。特定の時間にサービスを実行する必要がない場合に設定しますmulti-user.target

基本手順

  1. または、目的のエディタを使用して起動時に実行するスクリプトを作成しますnano#!/bin/bashファイルの先頭に正しいshebang(bashスクリプト用)が含まれていますchmod

  2. my_service.serviceというファイルにサービスを作成し、正しいディレクトリにコピーするだけですcp my_service.service /lib/systemd/system/

  3. サービスの開始:sudo systemctl start my_service.serviceサービスに実行するように指示したすべてのスクリプトが開始されます。起動の代わりに同じコマンド「停止」を使用して終了します。

  4. 起動プロセスにサービスを追加しますsudo systemctl enable my_service.service。これを削除するには、同じコマンドで「enable」を「disable」に置き換えます。

それだけです!これはsystemdサービスのデフォルト設定なので、スクリプトがroot権限で自動的に実行されることに注意してください。

私の簡単な例(完了)

参考までに、Dashを使用して単純なPython GUIサーバーを起動する簡単なシステムサービスを次に示します。

[Unit]
Description=Python GUI Server
After=network-online.target

[Service]
Type=simple
WorkingDirectory=/home/pi/software
ExecStart=/home/pi/software/GUI_POE.py &
Restart=always
RestartSec=15s
KillMode=process
TimeoutSec=infinity
User=pi
Group=pi

[Install]
WantedBy=multi-user.target

このサンプルサービスはPython3スクリプトを使用しますが、式はシェルスクリプトとまったく同じです。

詳細は以下で確認できます。この素晴らしいチュートリアルDigitalOceanが提供し、このAskUbuntuスレッドsystemdを学ぶのに役立つ素晴らしい答えです。役に立ったことを願っています!

関連情報