web-dev-qa-db-ja.com

17.04でupstartスクリプトを実行していますか?

17.04(Zesty Zapus)を実行し、スタートアップスクリプトを開始しようとしましたが、実行されていないことに気付きました。その後、/etc/initにスクリプトがたくさんある場合でも、upstartがインストール済みパッケージとしてリストされていないことに気付きました。どうやら、cronにタイプミスを導入しても起動に影響しないため、実行されていません。

Upstartスクリプトを実行するにはどうすればよいですか? upstartをインストールするか、systemd-layerを介して実行しますか? /etc/init内の他のスクリプトが突然実行されたときにupstartをインストールすると何かが壊れますか?

1

上記の手順は美しく機能しました。ここで私の答えにいくつかの詳細な手順を作成しました。

私の環境は次のとおりです

  1. 17.10のUbuntu
  2. Gunicorn 19.xサーバーにpythonアプリがあります。このアプリケーションをサービスとして起動する必要があります。

まず、foo.serviceファイルを作成する必要があります。

[Unit] 
Description=FooServer 

[Service] 
Restart=on-failure
WorkingDirectory=/path/to/your/working/directory/where the foo lives
ExecStart=/what/process/will call foo eg: in my case I used gunicorn app:app
ExecReload=/bin/kill -HUP $MAINPID 
KillSignal=SIGINT 

[Install] 
WantedBy=multi-user.target

「=」記号の左側にあるすべての単語の意味と(以前の)upstartの同等の用語は、リンクにあります https://wiki.ubuntu.com/SystemdForUpstartUsers

ファイルの準備ができたら、「foo.service」という名前を付けましょう(.service拡張子が重要です)

ファイルを/lib/systemd/systemに配置する必要があります

その後、呼び出してサービスを有効にする必要があります

systemctl enable foo

これにより、すべてのサービスパーティーが存在する一部のルートアクセスベースのフォルダーにシンボリックリンクが作成されるため、ルートパスワードの入力が求められます。

あなたが手間をかけずにここまで到達した場合、あなたは良いです。したがって、サービスが作成されます。呼び出して開始します

Sudo service foo start

systemctl status fooはステータスを表示しますSudo service foo stopはサービスを停止します

私は今日一日中Gunicornページにいて、さまざまなオプションをすべて試しましたが、どれも機能せず、最終的にはこのオプションが機能しました。 @Zannaと@Nicklas Karlsson本当にありがとう

1
siddharthrc

/etc/initにスクリプトが含まれている場合でも、サーバーバージョンOOTBにはupstartは含まれていないようです(少しわかりにくい)。

Upstartスクリプトは、ほとんど pstartユーザー向けのsystemdのUbuntu wikiページ をガイドとしてsystemdユニットファイルとして書き直し、通常の方法で有効にしました。

1