ubuntu-18.04ブートスクリプト

他のLinux設定とは異なり、失敗した理由##

ubuntu-16.10以降、ubuntuはinitd管理システムを使用しなくなり、代わりにsystemdを使用します。
systemdの使用法を調べたところ、serviceとchkconfigをsystemctlコマンドに置き換えるなど、変更が少し大きいことがわかりました。
たとえば、次の前にmysqlサービスを開始するには:
須藤は管理者です。現在のユーザーが管理者の場合は無視してください。

sudo service mysql start

今すぐ使用:

sudo systemctl start mysqld.service

実際、この変更はそれほど大きくはありません。主な理由は、起動が以前よりも複雑になっていることです。 systemdは、デフォルトで/ etc / systemd / systemの下の構成ファイルを読み取り、このディレクトリーの下のファイルは、/ lib / systemd / system /の下のファイルにリンクされます。
ls / lib / systemd / systemを実行すると、必要なrc.local.serviceを含む多くの起動スクリプトがあることがわかります。
スクリプトの内容を開きます。

# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1of the License, or
# ( at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if/etc/rc.local is executable.[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[ Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes

通常、通常の起動ファイルは主に3つの部分に分かれています。
[ ユニット]セクション:起動シーケンスと依存関係
[ サービス]セクション:開始動作、開始方法、開始タイプ
[ [インストール]セクション:この構成ファイルのインストール方法、つまり起動方法を定義します
/etc/rc.localの起動シーケンスがネットワークの背後にあることがわかりますが、明らかにインストールセクションがなく、起動方法の定義がないため、この構成は明らかに無効です。したがって、[インストール]セクションを彼に追加する必要があります。

[ Install]  
WantedBy=multi-user.target  
Alias=rc-local.service

ここで、ubuntu-18.04にはデフォルトで/etc/rc.localファイルがないため、自分で作成する必要があることに注意してください。

以下は、ubuntu-18.04起動スクリプトを設定する方法の全体的な説明です##

1. rc-local.serviceファイルを作成します####

sudo vi /etc/systemd/system/rc-local.service

2. 次のコンテンツをrc-local.serviceファイルにコピーします####

[ Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
 
[ Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99[Install]
WantedBy=multi-user.target

3. ファイルrc.local ####を作成します

sudo vi /etc/rc.local

4. 次のコンテンツをrc.localファイルにコピーします####

#! /bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By defaultthis script does nothing.
echo  java -jar /home/intel/XXX.jar --spring.config.location=/home/intel/config/application.properties >/home/intel/XXXX.log &>/usr/local/test.log
exit 0

5. rc.local ####に権限を追加します

sudo chmod +x /etc/rc.local

6. サービスを有効にする####

sudo systemctl enable rc-loca

7. サービスを開始し、ステータスを確認します####

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

8. test.logファイルを再起動して確認します####

cat /usr/local/test.log

Recommended Posts

ubuntu-18.04ブートスクリプト
Ubuntuソフトウェア
Linux(ubuntu 12.04)