web-dev-qa-db-ja.com

mysql.serviceのsystemdスクリプトはどこにありますか?

私は実際にMariaDB(MySQLのドロップイン置換)を使用しています。

Systemd mysql.serviceファイルに変更を加えようとしています。

Sudo systemctlを実行するとそれがリストされ、ロードされている/アクティブである/実行中であることが示されているので、それが存在することがわかります。

問題は、編集するファイルが見つからないことです。私が見つけたさまざまな記事で読んだことから、ドキュメントは次の場所にあるはずです

/etc/systemd/system/multi-user.target.wants/mysql.service

しかし、そうではありません。/etc/systemdレベルで他のディレクトリを参照しましたが、役に立ちませんでした。何か案は?

7
David Mackey

静的ファイルで定義されたユニットには、systemctl status、そのコマンドを発行して出力された情報を使用して、その場所を確認できます。

例えば:

# systemctl  status sshd
● sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2016-10-31 17:01:01 UTC; 1 weeks 0 days ago
 Main PID: 283 (sshd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/sshd.service
           └─290 /usr/bin/sshd -D

ここではtabコマンドが役立つことに注意してください。

したがって、私のシステムでは、systemdサービスは/usr/lib/systemd/。その場所にフォルダが存在する可能性があることに注意してください。

別の方法は、その特定の場所でfindコマンドを使用してサービスを見つけることです。

# find /usr/lib/systemd/ | grep -i mysql

それが役に立てば幸いです;)

10
Adrian Antunez

Systemd initスクリプトのデフォルトの場所は次のとおりです。

/lib/systemd/system

しかし、それらを変更するための推奨される方法は、次の場所にカスタムスクリプトを作成することです。

/etc/systemd/system

後者のフォルダー内のスクリプトは、前の場所のスクリプトをオーバーライドします。

3
473183469

あなたの特定のケースでは、おそらくMySQLにはsystemdサービスファイルがなく、/etc/init.d/mysqlにSystemV initスクリプトしかないためです。それを制御するには、systemctlまたはserviceを使用する必要があります。 /etc/init.d/mysql stopを実行すると、systemdがクラッシュしたと判断し、再起動します。

新しいUbuntuでもこれができるかどうかはわかりませんが、古いものは間違いなくそうです。

2
Halfgaar

私はubuntu 16.04を使用しています! /etc/security/limit.confおよび/etc/mysql/my.cnfを変更した後、次を実行します
Sudo systemctl edit mysql.service

次の行を追加する

[Service]
LimitNOFILE=infinity

0
Justin Zhu

systemd

Maria.dbサイトの systemd の公式ドキュメントによると、maria.dbサービスの構成ファイルは次の場所に保存されています。

/usr/lib/systemd/system/mariadb.service

systemdクイック情報:

systemdは、MariaDBが10.1.8以降のリリースで使用するinitの代替品です。このバージョンより前の配布パッケージは別の構成を使用する可能性があるため、必要に応じてドキュメントを参照してください。

...そして設定ファイルの場合:

サービス定義は/usr/lib/systemd/system/mariadb.serviceにインストールされます。サービス名はmariadb.serviceです。ただし、便宜上、mysql.serviceおよびmysqld.serviceのエイリアスが含まれています。

インストールでmaria.dbサービスを開始するためにカスタマイズされた構成ファイルを使用している場合、スクリプトは次の場所にあります。

/etc/systemd/system/mariadb.service.d/XXXX.conf

XXXXは任意のファイル名にできます!

これは、上記の link での推奨事項が原因である可能性があります。

上書きまたは設定するsystemd設定がある場合は、ファイル/etc/systemd/system/mariadb.service.d/XXXX.confファイルを作成します。ここで、XXXXはあなたにとって意味のあるものであり、構成オプションを適切な場所に配置しますセクション、通常は[Service]。 systemdオプションがリストの場合、置換値を設定する前にこれを空に設定する必要があるかもしれません...

オンライン記事へのフィードバックには、次のことを指摘する短いコメントがあります。

MariaDB 10.1.17およびその他の最近のリリースには、initdスクリプトとsystemdユニットがまだ含まれています。 initスクリプトはchkconfigがオンの状態で出荷され、これによりデーモンのどのバージョンが最初に起動するかに関して競合状態が発生します。これにより、RPMの更新とシステムの再起動で重大な問題が発生します。

これにより、問題を特定するために(この投稿の最初のバージョンで指摘されているように)構成ファイルのinit.dバリアントを検索する必要があるかもしれないという結論に至ります。

init.d

Mysqlまたはmariadbファイルが存在するかどうか、ディレクトリ/etc/init.dを確認します。

ls /etc/init.d -lash

次に、対応するファイル(私のUbuntuサーバーのmysqlなど)を開くと、起動部分を見つけることができます。

cat /etc/init.d/mysql

(注:mysqldファイルはなく、プレーンなmysqlファイルのみ)

ある時点で、サービス起動スクリプトに健全性チェックがあります。

## Do some sanity checks before even trying to start mysqld.
sanity_checks() {
  # check for config file
  if [ ! -r /etc/mysql/my.cnf ]; then
    log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
    echo                "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
  fi

したがって、私のセットアップの実際のファイルは/etc/mysql/my.cnfファイルになります。次にそこから行きます。

構成は異なる場合がありますが、この知識があれば、サービスの構成ファイルを見つけることができます。

0

これが私がUbuntu 16で見つけた方法です

#list all timer
systemctl list-timers #--> got apt-daily.service

#locate where is systemd 
Sudo find / -name apt-daily.service
> /lib/systemd/system/apt-daily.service #--> /lib/systemd/system/
0
Nam G VU

より一般的には、名前でファイルを見つけるには、次のいずれかの方法を使用できます。

  • find / -iname "<filename>"
  • updatedb && locate <filename>
0
shodanshok

Ubuntuでは、次の場所にあります。

/lib/systemd/system/mysql.service

私はかつてsystemctl enable mysql.serviceコマンドを実行しようとしましたが、/ etc/systemd/system /(通常はそこにハードリンクがあります)でファイルを検索し、私の場合はmysql.serviceがないことがわかりましたそこにファイルします。だから私はハードリンクを作成しました:

ln -T /lib/systemd/system/mysql.service /etc/systemd/system/mysql.service

0
Hussein Hijazi