Rubyで作ったWebSocketサーバを自動起動してみます。
1 |
sudo nano /etc/rc.local |
で
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi exit 0 |
の
1 |
exit 0 |
の前に
1 |
ruby /home/pi/mubogt_server_v1_0_0.rb & |
と書く。
mubogt_server_v1_0_0.rbはWebSocketサーバのファイル名
最初にruby、最後に&をつける。これがミソ。
バックグラウンドで実行します。
これをつけないとフォラグラウンドで実行されて、いつまでたっても解放されず
コマンド受付状態にならない。
&をつけないと、
先に行けずに止まってしまうでしょう。
mubogt_server_v1_0_0.rbに実行権を付与。(これが必要かどうかわからない)
1 |
chmod +x /home/pi/mubogt_server_v1_0_0.rb |
自動起動後に
1 |
ps ax |
でこのプロセスが走っているか確認できます。
しかし、この方法ではシステム起動時に「一度だけ」起動するので、途中で何かの原因でプロセスが止まるとそれきりになります。
止まってもなんどでも起動するのではればデーモン化が必要です。
これは次のステップで。