質問: RaspbianのLiteをRaspberry Pi Zero WHで使っています. npmモジュールのforeverを用いてnodeアプリをdaemon化しました. /etc/rc.localに ``` /usr/local/bin/forever /home/pi/Test/main.js ``` と書きました. そしてRaspbianを再起動すると,起動時にmain.jsは正常に動作しました. しかし,main.jsを止めようと**Ctrl+C**を押したのですが,main.jsは止まりませんでした. ``` ~main.jsのログ~ ^C^C^X ``` 起動すると上のようになり,**Ctrl+C**などのコマンドを受け付けません. このため,作業のために別の端末からssh接続をしないといけなくなりました. バックグラウンドのログを表示するようになっているのでしょうか? どのようにすればこの問題を解決できるでしょうか.どうかご回答の程よろしくお願いいたします。
回答: foreverは「永遠」の名の通り、 タスクが終了されると復活させるソフトウェアです。 RPGに出てくるゾンビを無限に操る死霊術師みたいなものです。 死霊術師がforever、ゾンビが`/home/pi/Test/main.js`といった関係になっています。 あなたが質問文でやっていることは、 死霊術師を放置してゾンビを退治しながら、 「ゾンビが居なくならねえ」と言っているようなものです。 (しかもその死霊術師はあなたが連れてきたので壮大なマッチポンプです) ゾンビが不要になったのであれば、 死霊術師にゾンビを作るのをやめてもらうようお願いしなければなりません。 > > `/usr/local/bin/forever /home/pi/Test/main.js` > > > `forever`はサブコマンドを持っています。 沢山の機能が詰まっている複雑なツールってことですね。 GitHubにある製作者のREADMEを読むのが一番確実ですが、 まずは流れを掴む為に「forever npm」などのワードで検索すると、 日本語の記事が沢山出てくるので流れを把握しておくと良いでしょう。 * forever - GitHub * Node.jsアプリをLinux環境で常駐化させる forever編 - Qiita 公式からコピペしてきただけですが、 `forever --help`コマンドを実行するとサブコマンド(action)の一覧が分かります。 ``` $ forever --help usage: forever [action] [options] SCRIPT [script-options] Monitors the script specified in the current process or as a daemon actions: start Start SCRIPT as a daemon stop Stop the daemon SCRIPT by Id|Uid|Pid|Index|Script stopall Stop all running forever scripts restart Restart the daemon SCRIPT restartall Restart all running forever scripts list List all running forever scripts config Lists all forever user configuration set Sets the specified forever config clear Clears the specified forever config logs Lists log files for all forever processes logs