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クラスタにラウンドロビン方式でリクエストが処理されるようになります。
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にタグって機能があった
タグなんてのあったんですね。 コミットにタグをつける事で、ブランチを切る事なく、バージョン毎に管理をする事が可能です。
コマンド例
タグの新規作成
# 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