Ubuntu Server 16.04を使用しています。
サーバーが起動するたびに特定のコマンドを実行したいと思います。このコマンドを実行する必要があることを意味します。サーバーが稼働しているとき(継続操作).
このコマンドはPHPフレームワークに接続し、Webアプリケーションを起動します。通常/var/www/html/app
、アプリケーションがあるフォルダに移動してこのコマンドを実行できます。php artisan serve --host ipadress
答え1
cron
この目的でアイテムを作成できます。@reboot
起動時に一度実行されます。
以下を含むファイルを配置できます/etc/cron.d
。
@reboot root cd /var/www/html/app && /usr/bin/php artisan serve --host ipaddress
コマンドにroot権限が必要ない場合は、rootを他のユーザーに変更する必要があります。
または、crontab -e -u username
コマンドを実行する必要があるユーザーのcrontab編集を実行し、次の行を挿入することもできます。
@reboot cd /var/www/html/app && /usr/bin/php artisan serve --host ipaddress
なぜなら、コマンドは&&
成功した場合にのみ実行されるからです。cd
修正する:サーバープロセスの場合は、pyloverショーなどのinitシステムを使用することをお勧めします。私はUbuntuでsystemdを好みます。変更したばかりのため、他の人(スタートアップ)が何もインストールしたり構成したりせずに使用できるかどうかはわかりません。 initシステムを使用すると、サービスを開始および停止し、その状態を照会できます。
答え2
一部のプログラムは、継続的なユーザー入力の下で実行され、初めて端末接続が切断されるように設計されていません。たとえば、Webサーバーはユーザー入力ではなくWeb要求に応答します。メールサーバーは、これらのアプリケーションの別の例です。このタイプのプログラムはデーモンプロセスと呼ばれます。デーモンという言葉はギリシャ神話に由来し、目に見えない有用な仕事をする善も悪もない存在を表しています。そのため、BSDマスコットはスニーカーと熊手を着用した陽気に見えるデーモンです。
upstartを試してみましょう:
/etc/init/my-http-server.confというファイルを作成します。
description "my-http-server"
start on (filesystem)
stop on runlevel [016]
respawn
#setuid my_user_id
#setgid my_group_id
#chdir /opt/my/env
exec <your command>
pre-start script
mkdir -p /var/run/my/
chown -R my:www-data /var/run/my
end script
#post-start script
# sleep 6
# chmod 776 /var/run/my/.s.my
#end script
詳細については、次を参照してください。新文書。
start
次に //stop
コマンドを使用してrestart
デーモンを制御します。
$ start my-http-server
$ stop my-http-server
$ restart my-http-server
Ubuntu 16.04でデーモンを生成するために使用できるオプションの完全なリストについては、以下を参照してください。ここ
編集1: いくつかの追加情報があります。 Ubuntu 16.04には以下が含まれています。システム。
したがって、最良の方法はsystemdデーモンを作成することです。 rc.d、init.d、upstartはまもなく廃止されるからです!