日に日に分からんことが増えていく…

プログラマー初心者としての日々を学んでいることを記録していく。

Gitでブランチ切って作業して、マージする。

git flowのルールにそって 作業しない場合に

$ git branch
* master

# ブランチカット
$ git checkout -b feature-create-api
feature-create-api

$ git add .
$ git commit -am "commit message!"
$ git push -u origin feature-create-api

$ git checkout master
$ git merge --no-ff feature-create-api

qiita.com

boostnoteとかいうmarkdownでメモできるアプリ

qiita.com

PostgresとMySQLのcreatedbなどの違い

scientre.hateblo.jp

daemonでDjangoを動かす方法など

http://cr.yp.to/daemontools.html

# インストール
sudo yum -y install rpm-build
wget http://mirrors.qmailtoaster.com/daemontools-toaster-0.76-1.3.6.src.rpm
rpmbuild --rebuild daemontools-toaster-0.76-1.3.6.src.rpm
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/daemontools-toaster-0.76-1.3.6.x86_64.rpm

# systemd のユニットファイル
sudo tee /etc/systemd/system/daemontools.service <<EOS
[Unit]
Description = daemontools
After = network.target

[Service]
ExecStart = /command/svscanboot
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target
EOS

# daemontools を起動
sudo systemctl daemon-reload
sudo systemctl start daemontools
sudo systemctl status daemontools
sudo systemctl enable daemontools

# サービスの設定
sudo mkdir /service/.w1-1
sudo mkdir /service/.w1-2
sudo mkdir /service/.w2-1
sudo mkdir /service/.w2-2
sudo mkdir /service/.w2-3

sudo ln -sf /vagrant/w1.sh /service/.w1-1/run
sudo ln -sf /vagrant/w1.sh /service/.w1-2/run
sudo ln -sf /vagrant/w2.sh /service/.w2-1/run
sudo ln -sf /vagrant/w2.sh /service/.w2-2/run
sudo ln -sf /vagrant/w2.sh /service/.w2-3/run

sudo touch /service/.w1-1/down
sudo touch /service/.w1-2/down
sudo touch /service/.w2-1/down
sudo touch /service/.w2-2/down
sudo touch /service/.w2-3/down

sudo ln -sf .w1-1 /service/w1-1
sudo ln -sf .w1-2 /service/w1-2
sudo ln -sf .w2-1 /service/w2-1
sudo ln -sf .w2-2 /service/w2-2
sudo ln -sf .w2-3 /service/w2-3

# サービスを開始する
sudo svc -u /service/*

# サービスの一覧表示
sudo svstat /service/*

# サービスの再起動
sudo svc -t /service/*

# サービスを停止する
sudo svc -d /service/*

# サービスを無効にする
sudo svc -d /service/* && sudo svc -x /service/* && sudo rm /service/*
  • supevisor

http://supervisord.org/

# インストール
sudo yum -y install supervisor

# supervisor 起動
sudo systemctl start supervisord.service
sudo systemctl status supervisord.service
sudo systemctl enable supervisord.service

# サービスの設定
sudo tee /etc/supervisord.d/app.ini <<EOS
[program:w1]
command=/vagrant/w1.sh
process_name=%(program_name)s-%(process_num)d
numprocs=2
autostart=false

[program:w2]
command=/vagrant/w2.sh
process_name=%(program_name)s-%(process_num)d
numprocs=3
autostart=false
EOS

# 反映
sudo supervisorctl update

# サービスの開始
sudo supervisorctl start all

# サービスの再起動
sudo supervisorctl restart all

# サービスの停止
sudo supervisorctl stop all

ngyuki.hatenablog.com

$ sudo systemctl daemon-reload

#サービスの再読み込みをする。
$ sudo systemctl daemon-reload

# サービスをスタート
$ sudo systemctl start sampled

# 動いているか確認
$ systemctl status sampled

# システム起動時に自動的に実行させる
$ sudo systemctl enable sampled

#起動時に実行する設定が有効かチェックする
$ systemctl is-enabled sampled

# 起動時に実行する設定を取り消す
$ systemctl disable sampled
$ cd /etc/systemd/system/
$ sudo vim sampled.service

iniファイルにて設定とかの流れ。

[Unit]
Description=Sample Daemon
[Service]
ExecStart=/usr/local/lib/sampled.py
Restart=always
Type=forking
PIDFile=/var/run/sampled.pid
[Install]
WantedBy=multi-user.target

dreamerdream.hateblo.jp

systemctlでdjangoを自動起動する – あれは、魔法だろうか?

DjangoをHerokuで実装するときにチェック

devcenter.heroku.com

AWSでelasticsearchとkibanaをinstall

そもそもAWSのポートが空いてなかった。

$ netstat -na | grep LISTEN
...
tcp        0      0 ::1:9200                    :::*                        LISTEN
...
## elasticsearch install
$ curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
$ tar -xvzf elasticsearch-5.6.0.tar.gz
$ cd elasticsearch-5.6.0/bin
$ ES_JAVA_OPTS="-Xms512m -Xmx512m" ./bin/elasticsearch

##  $ vim config/jvm.optionsでいじってもいいかも

$ curl -O "https://artifacts.elastic.co/downloads/kibana/kibana-5.6.0-linux-x86_64.tar.gz"
$ tar -xvzf kibana-5.6.0-linux-x86_64.tar.gz
$ cd kibana-5.6.0-linux-x86_64
$ vim config/kibana.yml

# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "0.0.0.0"

$ ./bin/kibana &

##  logstash install
$ curl -O "https://artifacts.elastic.co/downloads/logstash/logstash-5.6.0.tar.gz"
$ tar -xvzf logstash-5.6.0.tar.gz

ameblo.jp

Python3.6の仮想環境作成について

python3 -m venv /path/to/new/virtual/environment

でいけるらしい。

stackoverflow.com