ぎじゅメモ

パソコンオタクのメモブログです。

pm2の使い方

pm2とは... nodejsを起動するための便利なツール ログのファイルへの出力やOSの起動と一書に自動起動などをする事ができます。

インストール方法

npm install -g pm2

使い方

nodejsアプリを起動する

expressで作成したアプリの場合

cd プロジェクトフォルダ
pm2 start bin/www

で起動される。 *1

pm2で起動や停止しているnodejsアプリを確認する

pm2 list

もっと詳しくアプリの動作状況(起動状況)を見る

pm2 monit

ログも出てくるので便利

nodejsアプリに名前を付けて起動する

pm2 start bin/www --name=linebotServer

nodejsアプリをクラスタ化して起動(負荷分散)

pm2 start bin/www --name="linebotServer" -i max

起動する数をmaxにしているのでCPUの数だけ起動されます。 起動しているnodejsクラスタラウンドロビン方式でリクエストが処理されるようになります。

*1:プロジェクトフォルダに移動しないとアプリ内で使われる相対パスが変わります。

go言語の開発環境を作る

この手順は以下の環境で行います - ubuntu18.04

この手順では以下の物がインストールされます - go1.10.3 - Visual Studio Code

手順を実施する前に

ubuntuでは下記コマンドを実行する事でgoの開発に必要なツールをインストールする事が可能です。

apt install golang-1.7

ただこれには以下のメリット・デメリットがあります。 - メリット - aptを使ってインストール、アンインストールができるため管理が簡単 - デメリット - apt install でどこまで設定してくれるのかわからない - 最新のバージョンではない - なのでgo言語の最新の機能は使うことができない

なので手動で行ってしまいましょう! 手動でも意外と簡単です。

手順

rootユーザーで全ての手順を行います。

1.linux用のgo言語をダウンロードする

ダウンロードされたファイルは後で不要になるため、/tmpで作業を行います。 /tmp以下に配置されたファイルは再起動毎に自動で削除されます。

# cd /tmp
# wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

2.展開する

tar.gzファイルはtarコマンドのzxvfで展開する事が可能です。

# tar -zxvf go1.10.3.linux-amd64.tar.gz

3.展開した物を/usr/local/に移動する

手動でインストールする場合は、ここに実行ファイルを配置します。

# mv go /usr/local/

4.パスを通して、/tmpでの実行許可

ubuntuではホームディレクトリの.bashrcにexportコマンドを記述する事でパスを通す事ができます。 ここからは各ユーザー毎に設定を行ってください。

# cp ~/.bashrc ~/.bashrc-backup
# echo 'mysetting' >> ~/.bashrc
# echo 'export GOPATH=$HOME/go' >> ~/.bashrc
# echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
# echo 'export PATH=$PATH:$GOROOT/bin' >> ~/.bashrc
# echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bashrc
# echo 'mount -o remount,exec /tmp' >> ~/.bashrc

"ではなく'を使用している事に注意してください。 "を使った場合はうまくいきません。

最後の/tmpの実行許可は go run コマンドを実行する際に使用されるため、許可しておかなければなりません。 セキュリティ的には弱くなるので気になる方は go run 実行前に

# mount -o remount,exec /tmp

を手動で実行してください。

5.goコマンドが使えるか確認

端末を開きなおして以下のコマンドを実行

# go -h

ヘルプが表示されたならgo言語インストール完了です go言語を実行する環境が必要なだけであれば下記手順は不要です。

6.vscodeをダウンロード・インストールする

vscodeのインストールは下記コマンドだけで完了します。 この時も/tmpに移動しておく事で削除する手間が省けます。

# cd /tmp
# wget https://vscode-update.azurewebsites.net/1.14.0/linux-deb-x64/stable
# dpkg -i stable

7.vscodeが起動するか確認

rootで実行する場合には --user-data-dirオプションが必要となります。 ここでは~/.codeを指定します。

rootの場合
# code --user-data-dir=~/.code
その他の場合
# code

起動したらvscodeインストール完了です。

8.vscodeでgoの開発環境を整える

vscodeを起動して以下の操作を行います。

vscodeの拡張機能「Go」をインストールし、vscodeを再起動
vscodeで適当なディレクトリを開く
ファイルを作成し、「main.go」ファイルを作成する
ファイルをクリックして開き、何か記述してCtrl+S
vscodeに何かインストールしろと言われるので、「Install All」をクリックし、インストールする。

Install Allでは、golintや、補完機能などの周辺ツールがインストールされます。 この手順を繰り返し、何も出なくなれば環境は整いました。

9.goでhello worldしてみる

hello worldしてみます 先ほど作成した「main.go」を開き以下の内容を記述してください。

package main

func main(){
    println("hello world!")
}

そしてF5キーを押す事で実行する事ができます。 うまくいかない場合はvscodeのターミナルで(他の端末でも可)「main.go」があるディレクトリに移動してから下記コマンドを実行してください。

# go run main.go

vscode下部のコンソールに hello world! と表示されれば vscode + go言語 の開発環境は完成です。

アンインストール

アンインストールも簡単です。

# rm -r /usr/local/go
# rm -r ~/go
# mv ~/.bashrc-backup ~/.bashrc

.bachrc-backupが無くなってしまった場合には、 .bashrcをleafpadやvimで開き、追記した行を削除するだけで大丈夫です。

マークダウンの書き方サンプル

見出し

# 見出し

中見出し

## 中見出し

小見出し

### 小見出し
  • 箇条書き1
    • 箇条書き1ー1
    • 箇条書き1ー2
      • 箇条書き1ー2ー1
      • 箇条書き1ー2ー2
  • 箇条書き2
    • 箇条書き2ー1
- 箇条書き1
    - 箇条書き1ー1
    - 箇条書き1ー2
        -  箇条書き1ー2ー1
        - 箇条書き1ー2ー2
- 箇条書き2
    - 箇条書き2ー1
func main(){
    println("ソースコード等の書き方1")
}
\```
func main(){
    println("ソースコードの書き方1") 
}
// バックスラッシュは不要
\```
func main(){
    println("ソースコード等の書き方2")
}
\```go
func main(){
    println("ソースコードの書き方2") 
}
// バックスラッシュは不要
\```
表の 書き方 !!!
こう やります !!!
|表の|書き方|!!!|
|:-|-|-:| //コロンをつける位置で右寄せ、左寄せが指定できる
|こう|やります|!!!|

gitにタグって機能があった

f:id:noma3629:20180613160232p:plain

タグなんてのあったんですね。 コミットにタグをつける事で、ブランチを切る事なく、バージョン毎に管理をする事が可能です。

コマンド例

タグの新規作成

# git tag "タグの名前"

タグの削除

# git tag -d "タグの名前"

コミットへタグの付加

# git tag "タグの名前" "コミットID"

コミットにタグがついてるのを確認する

# git log

gitは奥が深い!

こちらを参考にしました mzgkworks.hateblo.jp

ubuntuを使ってUSBメモリを暗号化

以下のサイトを参考にし、USBメモリの暗号化を行ってみました。 暗号化ファイルシステムを使ってみる 〜 LUKS 編 - いますぐ実践! Linuxシステム管理 / Vol.186

USBメモリと書いていますが、HDDでもSSDでも同じ手順で適用出来るかと思います。 これで様々なデータを安心して持ち運べるのではないかと。

0. 準備

cryptsetupコマンドを使うため、インストールします。

# apt update
# apt install cryptsetup

1. USBメモリパーティションをLUKSでフォーマットする

# cryptsetup luksFormat デバイスファイル

フォーマットされてもいいか、確認されるので「YES」と大文字で入力し、Enter その後、復号する際に使うパスワードを聞かれるので入力します。 このパスワードを忘れた場合は、復号できなくなります。

2. 暗号化されたパーティションを開き、ext4でフォーマット

# cryptsetup luksOpen デバイスファイル 名前
(名前は/dev/mapper以下に配置されるファイル名になります、なんでもいいです。
# ls /dev/mapper
control 名前
# mkfs.ext4 /dev/mapper/名前

3. マウントする

# mount /dev/mapper/名前 /mnt/

4. アンマウントする

# umount /mnt/

5. LUKSを閉じる

やらないと /dev/mapper/名前 ファイルが残ってしまいます。

# cryptsetup luksClose 名前

LUKSを開く、閉じるっていう考えが必要になるだけみたいですね、とても楽チンです。

gitのコミットメッセージルール

自分のメモ用に書きます

コミットメッセージのパターン

[type][scope] subject
<BRANK LINE>
<body>

typeは何

変更種類の見出し - 新機能 - 不具合修正 - その他 など、

scopeは何

変更対象の識別のための見出し - 投稿画面 - ツイート詳細画面 - プロフィール画面 など、開発する物によって変わる

subjectは何

リリースノートに載る説明文 [type]または[scope]とsubjectの間にスペースを入れて記述する 過去の物を参考にしてわかりやすい言葉を使用する。

BLANK LINEは何

一行目とbodyの間に入れる空行 読みやすくするために入れる

bodyは何

subjectで説明しきれない内容を記述する 1行で幾つものファイルの変更を書けるはずがないので 細かい事はここにかく

実際のコマンド例

# git commit -a -m "[不具合修正][その他]設定画面の修正\n\n〇〇項目の設定できる範囲を1~100に修正"

こちらのページを参考にしています。 https://gist.github.com/mironal/c14a2848e752baead8e2

vscodeでnodejs開発をする際のインテリセンス機能について

typingsやtsf(現在は非推奨)を使用すると、インテリセンス機能が使えるようになるそうです。

ローカルで作成したライブラリでも可能になる様なので、かなり嬉しいですね。

参考にしたサイト qiita.com