Linuxセットアップガイド

Linuxセットアップガイド

デーモン化

root実行

ターミナル
sudo nano /etc/systemd/system/サービス名.service

エディタ
[Unit]
Description=<サービスの説明>

[Service]
Type=simple
ExecStart=<実行するコマンド>
Restart=always

[Install]
WantedBy=multi-user.target

ターミナル
sudo systemctl daemon-reload
sudo systemctl enable サービス名.service        # 自動起動有効化
sudo systemctl restart サービス名.service       # 起動
sudo systemctl status サービス名.service        # 状態確認
sudo journalctl -u サービス名 -n [行数] -x      # ログ確認 -x : ヒントを表示
sudo systemctl stop サービス名.service          # 停止
sudo systemctl disable サービス名.service       # 自動起動無効化

ユーザ実行

ターミナル
mkdir -p ~/.config/systemd/user/
nano ~/.config/systemd/user/サービス名.service

エディタ
[Unit]
Description=<サービスの説明>

[Service]
Type=simple
ExecStart=<実行するコマンド>
Restart=always

[Install]
WantedBy=default.target

ターミナル
systemctl --user daemon-reload
systemctl --user enable サービス名.service      # 自動起動有効化
systemctl --user restart サービス名.service     # 起動
systemctl --user status サービス名.service      # 状態確認
journalctl --user -u サービス名 -n [行数] -x    # ログ確認 -x : ヒントを表示
systemctl --user stop サービス名.service        # 停止
systemctl --user disable サービス名.service     # 自動起動無効化

cronによる定期実行

エディタの変更

ターミナル
select-editor

crontabでcronを操作

ターミナル
sudo crontab -u [ユーザ名] -e

エディタ
#   分      時      日      月      曜日        [実行コマンド]
    0       0       *       *       *           /usr/bin/apt update -y              # 毎日0:00にアップデート
    */5     3-5     5,10,15 *       *           /usr/bin/apt upgrade -y             # 毎月5日、10日、15日の3時~5時台に5分間隔でアップグレード
                                                                                    # ,     : 複数指定
                                                                                    # -     : 範囲指定
                                                                                    # [m]/[n] : mからn間隔で実行 (*/n : n間隔で実行)
                                                                                    # 曜日  : 0~7で指定 (0と7は日曜日)

設定ファイルの読み込み (上書きのため注意)

ターミナル
sudo crontab -u [ユーザ名] -l 2>/dev/null > [バックアップファイル]                  # 現在の設定をバックアップ
sudo crontab -u [ユーザ名] [設定ファイル]