退職は損切りかリスクか。Next.js超入門」のソースがfirebaseのバージョンのせいで動かないので、なんとかするFontAwesomeでSNSのロゴを手に入れようWEBページの余白が消えない!?そんな時はリセットCSSの出番だ【codyhouse】ページスクロールエフェクトを実装したい【オシャレ】FontAwesomeにlinkをつけるCSSの優先順位!!どのセレクタが最強なのかJINテーマの記事内の文字サイズをstyle.cssをいじって修正する不意にCSSだけでおしゃれなボタンを作りたくなったら真似ぶは学ぶ。insystemdから自動起動させるこんにちは。ラズパイでVPNサーバーを作成した際に、VPNサーバーの自動起動を行ったので、備忘的に残します。VPN(https://ja.softether.org/)やりたいことラズパイの起動時に自動的にsoftetherVPNサーバーを動作させる。具体的にはOS起動時に、自動的に起動しVPNサーバーとしてVPNセッションの接続を待機する状態になり、またOSがシャットダウンする際、自動的にシャットダウン処理が行われるようにしたい。systemdOS起動時に、起動しシャットダウンされるまで動作するデーモンプロセスにはinit.dとsystemdがある。(DebianやCentOS、Fedoraなどの場合)どちらに設定するのか、という問題がある。softetherの公式ドキュメント(https://ja.softether.org/4-docs/1-manual/7/7.3)にはinit.dにスクリプトを登録している。init.dでいいじゃないかと思われるかもしれないが、systemdはプロセスを並行して実行できるように設計されたinitの代替として登場したデーモンである。このHP(https://www.tecmint.com/systemd-replaces-init-in-linux/)が詳しい。systemdの特徴として書かれているものをいくつかピックアップする。Syntax.→シンプルなユニットの構文etc...CopyCopied!後から出てきたsystemdは、init.dの欠点であった起動時にデーモンの起動に失敗した場合のカーネルパニックなどを避けられるように設計されており、systemdを使用できる場合はsystemdをすべきだとのこと。公式のドキュメントは無視して、systemdにデーモンプロセスを登録していく方針が決まった。softetherがinit.dにデーモンプロセスを登録している理由は不明である。単純に当時の設計思想のままであるのか、systemdに何らかの問題があるのか。systemdを第一に、問題が発生するとinit.dに登録する。実装systemdにデーモンプロセスを登録していこう。vpnserver.serviceのファイルを作成する。/usr/local/vpnserverにインストールしていることが前提である。次に上記の7行目の/usr/lib/systemd/system/vpnserver.shのシェルスクリプトファイルを作成する。$tapCopyCopied!色々調べたところ、tapデバイスをブリッジするために4,5行目を記載していたのだが、「すでにブリッジに登録されている」旨のエラーが発生したため、コメントアウトした。確認はしていないのだが、VPNserverのセットアップの段階で設定していた気がする。この4,5行目を記載するために、shファイルを作成したのだが、結局コメントアウトしたので、何をしているのかわからないw(※startのスクリプトだけならvpnserver.serviceに書いた方が断然いい)とりあえず、上記のような中身で進めることにする。systemdに自動起動の登録を行う。argumentCopyCopied!エラーだ。素直にいかないのが憎たらしい。vpnのコマンドを実行しているところまで飛ばしてもらって大丈夫だ。argument”エラーが出た場合は、以下のコマンドを実行することになる。[file][folder]を実行することで、[folder]に[file]のシンボリックリンクを貼ることができる。enableのコマンドは実質的には/etc/systemd/system/multi-user.target.wants/の下にシンボリックリンクを張っているだけのようなので、無理やり自分でシンボリックリンクを張りに行ったという訳。いつも通りで恐縮だが、上記のコマンドを適当に真似して発生した事象に対してはいかなる責任も追いません。自動起動のunit-filesのstatusを確認する無事にsystemctlのコマンドを実行し、登録ができたら、念のために確認しておく。以下のコマンドを入力し、enabledになっていればデーモンプロセスとして登録されている。CopyCopied!動作確認では、実際にOSの再起動を行い自動的にプロセスが起動し、VPNのセッション待機状態になっているかを確かめよう。rebootを実行する。rebootCopyCopied!再起動したら、以下のコマンドを入力し、ステータスを確認する。(running)になっていると、起動に成功している。-xeのコマンドを入力し、遡ると割と明確にエラーが表示されていることが多い。そのようなファイルはありません。原因箇所が特定できることが多い。