Ubuntu 12.04を使用しており、システムが正常に起動したらサービスを開始したいと思います。
「サービス」として私はcd my_directory; my_command -host 0.0.0.0 -port 1234 -arg x などの一部のコードは、コマンドラインから起動されたかのように実行する必要があることを理解しています。一般ユーザーとして開始されたサービスとルートで開始されたサービスがあります(実際には、サービスをユーザーレベルで実行する必要はありません)。
また、「サービス」が停止したときの動作を設定する必要があります。私の場合は、同じパラメータを使用して指定されたディレクトリから再起動したいと思います。
システムが正常に起動したら、つまり電源スイッチを押すと、すべてのサービスが自動的に起動します。他のアクションは必要ありません。
Web上に浮かぶいくつかの文書がありますが、すべて私を混乱させます。彼らは、、について話していますinit
が、例えば、upstartをサービスとして簡単に使用するためのステップバイステップのガイドラインに簡単に従うことができることを見たことはありませんinit.d
。rc.d
これが簡単な場合は、ここにステップが提供された場合はありがとうございます。
ベストアンサー1
Ubuntuの起動時に自動的に開始されるタスクを生成するには、提供された例を使用します。ここ。一例として、/etc/init/testservice.conf
sudoを使用して次のファイルが作成されたとします。
# testservice - test service job file
description "my service description"
author "Me <[email protected]>"
# Stanzas
#
# Stanzas control when and how a process is started and stopped
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas
# When to start the service
start on runlevel [2345]
# When to stop the service
stop on runlevel [016]
# Automatically restart process if crashed
respawn
# Essentially lets upstart know the process will detach itself to the background
# This option does not seem to be of great importance, so it does not need to be set.
#expect fork
# Specify working directory
chdir /home/user/testcode
# Specify the process/command to start, e.g.
exec python mycommand.py arg1 arg2
プロセスを「手動で」開始または停止するには、次を使用します。
sudo start testservice
sudo stop testservice
よりジョブ制御コマンド。