2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

qnoteAdvent Calendar 2024

Day 2

artisan tinkerコマンドと、nohupコマンドについてまとめてみた

Posted at

PMとして様々な案件を進めていくにあたって、実装されたコードが正しく動いているかを確認することはとても重要なことです。
しかし、全体の機能ではなく一部分だけを確認したいこともままあります。
そんなときに、artisan tinker を使うと、確認したいクラスの挙動のみ取り出してチェックすることができます。
また、処理に時間がかかる場合は、nohupコマンドによってバックグラウンドで動かすことも可能となります。
今回は、いつも私が使っているこの二つのコマンドについて簡単ながらまとめてみました。

1. artisan tinker の基本

artisan tinkerは、「アルチザン ティンカー」と読むそうです。
簡単にいうと「お試しツール」みたいなものになります。
たとえば、料理を作るときにちょっと味見することってありますよね?「この量でちょうどいいかな?」みたいに。その感じで、「このコードでちゃんと動くかな?」と確認できるのがartisan tinkerです。

2. artisan tinker コマンド

$ php artisan tinker
Psy Shell v0.11.4 (PHP 8.1.3 — cli) by Justin Hileman
>>> 

>>>になったら準備完了です。
例えば、ユーザ情報を取得するクラスがあったとしたら、以下のようにコマンドを打つことでユーザ情報が取得できます。

>>> app(App\{中略}\GetUserInfo::class)->execute('{取得したいユーザID}');

実装内容によって使えるコマンドは変わりますが、サクッと確認したい時にはとても便利です。

※tinkerで使えるコマンドを確認したい場合は

$ php artisan list

で、使えるコマンド一覧が表示されます。

3. 長時間実行スクリプトの課題

artisan tinker は便利ですが、長時間実行されるスクリプトでは次のような問題があります。

  • セッションが切れるとスクリプトが中断される
  • コマンドの実行中にターミナルを閉じられない
  • 実行ログが保存されない

これを解決するために、nohup コマンドを利用します。

4. nohup コマンドの活用

nohup コマンドは、シェルセッション終了後もプロセスを継続して実行できるLinuxコマンドです。Laravelのスクリプト実行にも有効です。
nohup コマンドは以下の形式で使用します。

$ nohup <コマンド> &

nohup を利用することで、ターミナルを閉じてもスクリプトがバックグラウンドで実行され続けます。

こうすることで、ターミナルを閉じても、処理が終わるまで実行し続けてくれます。
ちなみに、nohupコマンドを使った時は、通常ホームディレクトリにnohup.outというログファイルが出力されます。
これはtailコマンドでリアルタイムに確認することができます。

$ tail -f nohup.out

まとめ

以上でartisan tinkernohupコマンドについての紹介でした。
処理の確認だけでなく、ピンポイントで取得したい情報がある場合にも使えるので、活用できる方は参考にしてください。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?