20201127のLinuxに関する記事は7件です。

LinuxでDiscordの画面共有がうまくいかない問題

ゲームバイスチャットをはじめ、あちこちで使われている、コミュニケーションツールのDiscord。

手元のLinux上(KDE) では画面共有があまりうまく動いていませんでした。ちょっと本腰を入れて解決策を探ったので、その記録です。

Discordで画面共有をしようとすると、アプリケーション単位で配信したりする機能があると思うのですが、それがうまく動作しません。
配信対象にするためのアプリケーションを選択する画面に、アプリケーション一覧が出てこないんですね。
それから、デスクトップ全体を配信するモードの方も、マルチモニター環境では複数台のモニターが一画面にまとめられて配信されてしまいます。

この問題、実はデスクトップ上の仮想ターミナルからDiscordを起動することで回避可能です。おそらく、起動方法によって何らかの環境変数が未設定になってしまうんだと思います。

とりあえずシェルを経由するように自分でデスクトップエントリを作成して、それを使うようにすることで回避できました。
問題の根本原因はなんなんでしょうね…

参考までに、作成したデスクトップエントリを書いておきます。
Exec = zsh -c hogehoge として、シェルを一度通して起動するのがミソです。

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=Discord PTB
StartupWMClass=discord
Comment=All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone.
GenericName=Internet Messenger
Exec=zsh -c ${HOME}/.local/DiscordPTB/DiscordPTB
Icon=com.discordapp.Discord
Type=Application
Terminal=false
StartupNotify=true
Categories=Network;InstantMessaging;
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Zabbixアップデートでつまづいた件

はじめに

  • 運用中のリバースプロキシ/Redmine/ZabbixらのPackageをアップデートかけた際につまづいたエラーと気がつくまでの過程をまとめる.

復旧までの過程

1.アップデート後からZabbixサイトのみにアクセスができず

  • ブラウザからアクセスした際に表示されたエラーは以下の通り.
  • POSTGRESQLは利用していないためあれ?となる.
  • lsof -i :443などでlistenしていることを確認.
    • 設定ファイルが認識されているかを確認.
DB type "MYSQL" is not supported by current setup. Possible values POSTGRESQL.

スクリーンショットし忘れた...orz

2.Nginx,Httpd,Zabbixの各ログの調査開始、関係していそうなログ発見(エラー文参照)

  • 確認した箇所は/var/log配下やsystemctl
  • Warningステータスのため、後回しにしたけどErrorがなかったので最終的にここに戻りました.
# systemctl restart rh-php72-php-fpm.service
# systemctl status rh-php72-php-fpm.service -l
● rh-php72-php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/rh-php72-php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-11-26 22:27:59 JST; 8s ago
 Main PID: 2441 (php-fpm)
   Status: "Ready to handle connections"
   CGroup: /system.slice/rh-php72-php-fpm.service
           ├─2441 php-fpm: master process (/etc/opt/rh/rh-php72/php-fpm.conf)
           ├─2446 php-fpm: pool www
           ├─2447 php-fpm: pool www
           ├─2448 php-fpm: pool www
           ├─2449 php-fpm: pool www
           ├─2450 php-fpm: pool www
           ├─2451 php-fpm: pool zabbix
           ├─2452 php-fpm: pool zabbix
           ├─2453 php-fpm: pool zabbix
           ├─2454 php-fpm: pool zabbix
           └─2455 php-fpm: pool zabbix

Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'zip' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/zip (/opt/rh/rh-php72/root/usr/lib64/php/modules/zip: cannot open shared object file: No such file or directory), /opt/rh/rh-php72/root/usr/lib64/php/modules/zip.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/zip.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/mysqli (/opt/rh/rh-php72/root/usr/lib64/php/modules/mysqli: cannot open shared object file: No such file or directory), /opt/rh/rh-php72/root/usr/lib64/php/modules/mysqli.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_mysql (/opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_mysql: cannot open shared object file: No such file or directory), /opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_mysql.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_mysql.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_odbc' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_odbc (/opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_odbc: undefined symbol: pdo_parse_params), /opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_odbc.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_odbc.so: undefined symbol: pdo_parse_params)) in Unknown on line 0
Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_pgsql' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_pgsql (/opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_pgsql: undefined symbol: pdo_parse_params), /opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_pgsql.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_pgsql.so: undefined symbol: pdo_parse_params)) in Unknown on line 0
Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_sqlite (/opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_sqlite: cannot open shared object file: No such file or directory), /opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_sqlite.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/pdo_sqlite.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'wddx' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/wddx (/opt/rh/rh-php72/root/usr/lib64/php/modules/wddx: cannot open shared object file: No such file or directory), /opt/rh/rh-php72/root/usr/lib64/php/modules/wddx.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/wddx.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'xmlreader' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/xmlreader (/opt/rh/rh-php72/root/usr/lib64/php/modules/xmlreader: cannot open shared object file: No such file or directory), /opt/rh/rh-php72/root/usr/lib64/php/modules/xmlreader.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/xmlreader.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Nov 26 22:27:59 [hostname] php-fpm[2441]: [26-Nov-2020 22:27:59] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'xmlrpc' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/xmlrpc (/opt/rh/rh-php72/root/usr/lib64/php/modules/xmlrpc: undefined symbol: php_XML_GetErrorCode), /opt/rh/rh-php72/root/usr/lib64/php/modules/xmlrpc.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/xmlrpc.so: undefined symbol: php_XML_GetErrorCode)) in Unknown on line 0
Nov 26 22:27:59 [hostname] systemd[1]: Started The PHP FastCGI Process Manager.

3.Zabbixの公式サイトにある手順の再チェック.

  • パッケージのインストール漏れなどないか確認.
  • あまり使ったことのないコマンドの確認.

4.SCLの概要を公式サイトやググってみる.

  • 公式サイトより一部抜粋.
  • 置き換わらないんだねということを把握.
Red Hat Software Collections では、Red Hat Enterprise Linux 6 または Red Hat Enterprise Linux 7 で提供されるデフォルトのシステムツールは置き換えられません。
その代わりに、並列のツールセットが /opt/ ディレクトリーにインストールされ、提供された scl ユーティリティーを使用してユーザーがアプリケーションごとにオプションで有効にできます。
たとえば、Perl または PostgreSQL のデフォルトのバージョンは、ベース Red Hat Enterprise Linux システムが提供するバージョンのままになります。

5.phpコマンドが効かないことに気が付く.

  • phpの古いVerの削除は確認済み.
  • php72をインスコし以下のコマンドで再確認.
    • zabbixの構築手順の過程でrh-php72-php-fpmがインスコされます.
# rpm -qa |grep php72
rh-php72-php-cli-7.2.24-1.el7.x86_64
rh-php72-runtime-1-2.el7.x86_64
rh-php72-php-gd-7.2.24-1.el7.x86_64
rh-php72-php-mbstring-7.2.24-1.el7.x86_64
rh-php72-php-ldap-7.2.24-1.el7.x86_64
rh-php72-php-common-7.2.24-1.el7.x86_64
rh-php72-php-mysqlnd-7.2.24-1.el7.x86_64
rh-php72-php-zip-7.2.24-1.el7.x86_64
rh-php72-php-pdo-7.2.24-1.el7.x86_64
rh-php72-php-xml-7.2.24-1.el7.x86_64
rh-php72-php-pear-1.10.5-1.el7.noarch
rh-php72-php-json-7.2.24-1.el7.x86_64
rh-php72-php-process-7.2.24-1.el7.x86_64
rh-php72-php-bcmath-7.2.24-1.el7.x86_64
rh-php72-php-fpm-7.2.24-1.el7.x86_64
rh-php72-1-2.el7.x86_64

ここでphp72モジュールはあるが、VPS側で認識していないことを把握.

6.scl enable rh-php72 bashが実行できず.

  • 認識させるためにコマンドを実行するがエラーが発生.
# scl enable rh-php72 bash
warning: /opt/rh/rh-php72//enable scriptlet does not exist!

7.rh-php73をインストールしてrh-php72とディレクトリ構造を比較.

  • 両方のディレクトリを比較した際に★マークのものがrh-php72になかった.
# yum install rh-php73-php-fpm -y
# ls -la /opt/rh/rh-php72/
total 36
dr-xr-xr-x  6 root root 4096 Nov 26 23:44 .
drwxr-xr-x  5 root root 4096 Nov 26 23:44 ..
drwxr-xr-x  2 root root 4096 Nov 26 23:44 deregister.d
drwxr-xr-x  5 root root 4096 Nov 26 23:44 register.content
drwxr-xr-x  2 root root 4096 Nov 26 23:44 register.d
dr-xr-xr-x 16 root root 4096 Nov 26 23:44 root

# ls -la /opt/rh/rh-php73/
total 12
dr-xr-xr-x.  6 root root 128 Nov 27 17:40 .
drwxr-xr-x.  4 root root  38 Nov 27 17:40 ..
-rw-r--r--.  1 root root  70 Oct 23  2019 deregister ★
drwxr-xr-x.  2 root root  69 Nov 27 17:40 deregister.d
-rw-r--r--.  1 root root 246 Oct 23  2019 enable-rw-r--r--.  1 root root  68 Oct 23  2019 register ★
drwxr-xr-x.  5 root root  39 Nov 27 17:40 register.content
drwxr-xr-x.  2 root root  46 Nov 27 17:40 register.d
dr-xr-xr-x. 16 root root 213 Nov 27 17:40 root

8.rh-php72の削除後、再インストールを実施.

  • yumで削除後もディレクトリらが残っていたため、rmコマンドでまるごと削除.
# yum remove rh-php72-php-fpm -y
# ls -la rh-php72/ <--ディレクトリの存在を確認
# rm -fr /opt/rh/rh-php72/ <--もしディレクトリが存在していたら
# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl <--*1

# ls -la rh-php72/
total 12
dr-xr-xr-x.  6 root root 128 Nov 27 17:52 .
drwxr-xr-x.  5 root root  53 Nov 27 17:52 ..
-rw-r--r--.  1 root root  70 Jul 26  2018 deregister
drwxr-xr-x.  2 root root  69 Nov 27 17:52 deregister.d
-rw-r--r--.  1 root root 246 Jul 26  2018 enable
-rw-r--r--.  1 root root  68 Jul 26  2018 register
drwxr-xr-x.  5 root root  39 Nov 27 17:52 register.content
drwxr-xr-x.  2 root root  46 Nov 27 17:52 register.d
dr-xr-xr-x. 16 root root 213 Nov 27 17:52 root

yum install rh-php72-php-fpm -yの場合関連パッケージがインストールされないことも考慮して上記*1のコマンドで実行した.

9.scl enable rh-php72 bash/systemctl restart rh-php72-php-fpm.service/systemctl status rh-php72-php-fpm.serviceを実行しエラーが出ていないことを確認.

# scl enable rh-php72 bash
#

# systemctl restart rh-php72-php-fpm.service
#

# systemctl status rh-php72-php-fpm.service -l
● rh-php72-php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/rh-php72-php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-11-27 18:10:59 JST; 21s ago
 Main PID: 14257 (php-fpm)
   Status: "Processes active: 0, idle: 10, Requests: 0, slow: 0, Traffic: 0req/sec"
   CGroup: /system.slice/rh-php72-php-fpm.service
           ├─14257 php-fpm: master process (/etc/opt/rh/rh-php72/php-fpm.conf)
           ├─14258 php-fpm: pool www
           ├─14259 php-fpm: pool www
           ├─14260 php-fpm: pool www
           ├─14261 php-fpm: pool www
           ├─14262 php-fpm: pool www
           ├─14263 php-fpm: pool zabbix
           ├─14264 php-fpm: pool zabbix
           ├─14265 php-fpm: pool zabbix
           ├─14266 php-fpm: pool zabbix
           └─14267 php-fpm: pool zabbix

Nov 27 18:10:59 [hostname] systemd[1]: Starting The PHP FastCGI Process Manager...
Nov 27 18:10:59 [hostname] systemd[1]: Started The PHP FastCGI Process Manager.
#

10.サイトへアクセスし無事にログインできたことを確認.

siteOK.png

さいごに

  • sclのドキュメントをしっかりと読み込んで行けばもっと早く気が付く事案かなと思いました.
  • また再現性は取れなったのですが以下の2点は目視にて確認しておりますが、複数回remove/installを試してみたら2回目以降は問題なく削除/インストールしてくれました.
    • yum remove rh-php72-*を実行したときに/opt/rh/rh-php72ディレクトリ自体の削除がされなかった.
    • yum install rh-php72-*を実行したときに/opt/rh/rh-php72配下に「deregister/enable/register」がなかった.
  • 余談:リソースの問題もあるためVPSのモジュールらは近くコンテナ化したなぁ(´ω`)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

find grep 

find /var/www/wordpress  \( -name \*.html -or -name \*.php \) -print | xargs grep '検索文字列'

xargs が何をしているかは以下リンク
https://albel06.hatenablog.com/entry/2018/10/21/211905
https://teratail.com/questions/25558

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【備忘録】コマンドライン操作_超基礎編

忘れることはないだろうと思いつつ、備忘録。

基礎的な操作

ファイルを作成する

$ touch ファイル名

ファイルの中身を表示する

$ cat ファイル名

ディレクトリを作成する

$ mkdir ディレクトリ名

ディレクトリを移動する

$ cd ディレクトリ名

カレントディレクトリの確認

$ pwd

ディレクトリの中身を表示する

$ ls

1つ親のディレクトリへ移動する

$ cd ..

ホームディレクトリへ移動する

$ cd

ファイルを移動させる

$ mv 移動するファイル名もしくはディレクトリ名 移動先のディレクトリ名

ファイル名を変更する

$ mv ファイル名 新しいファイル名

ファイルをコピーする

$ cp コピーするファイル名 新しいファイル名

ディレクトリをコピーする

$ cp -r コピーするディレクトリ名 新しいディレクトリ名

ファイルを削除する

$ rm ファイル名

ディレクトリを削除する

$ rm -r ディレクトリ名
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【備忘録】コマンドライン操作_超基礎

忘れることはないだろうと思いつつ、備忘録。

基礎的な操作

ファイルを作成する

$ touch ファイル名

ファイルの中身を表示する

$ cat ファイル名

ディレクトリを作成する

$ mkdir ディレクトリ名

ディレクトリを移動する

$ cd ディレクトリ名

カレントディレクトリの確認

$ pwd

ディレクトリの中身を表示する

$ ls

1つ親のディレクトリへ移動する

$ cd ..

ホームディレクトリへ移動する

$ cd

ファイルを移動させる

$ mv 移動するファイル名もしくはディレクトリ名 移動先のディレクトリ名

ファイル名を変更する

$ mv ファイル名 新しいファイル名

ファイルをコピーする

$ cp コピーするファイル名 新しいファイル名

ディレクトリをコピーする

$ cp -r コピーするディレクトリ名 新しいディレクトリ名

ファイルを削除する

$ rm ファイル名

ディレクトリを削除する

$ rm -r ディレクトリ名
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

30代からのプログラミング勉強 3日目

仕事が休みだった事もあり専属メンター(身内)によるPythonアプリケーション講座...の予定だったもののほぼほぼ環境構築で終了。

学習内容

ターミナルの活用方法

現在地
$ pwd
移動
$ cd ○○○○
現在地のファイル一覧
$ ls

他にも事前に環境出来てればpipenv shellで仮想環境に入れるとかあったけどあまり理解は出来てない。要学習。

HTML/CSS

Udemyにて。

CSSの内部参照
<style>
  p{font-size: 20px;}
</style>

※headの中に書き込むことにより対応したタグのスタイルを一括で設定できる。
CSSの外部参照
<link rel="stylesheet" href="ファイル名">

※headの中に書き込むことにより外部のCSSを引っ張ってこれる。同一ページ内に記載されないのでコードが見やすくなる。

上記二つを併記した場合は下に書いてある方が後に実行されるため優先されて表示される。

一行だけスタイルを変えたい場合は一番最後に実行されるようにインラインで書く。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SMT環境で物理コア数を取得するスクリプト

SMT環境で、スレッドが含まれたのコア数ではなく、物理コア数がほしいときもあると思います。
それ以外についても、加工しやすい形になっていないことが多いので単純に数をechoするだけです。

物理コア数の合計

echo $(($(grep physical.id /proc/cpuinfo|sort -u|wc -l)*$(grep core.id /proc/cpuinfo|sort -u|wc -l)))

論理コア数の合計 (nosmtだと上記と一致する。)

echo $(grep core.id /proc/cpuinfo|wc -l)
nproc

CPU数

echo $(grep physical.id /proc/cpuinfo|sort -u|wc -l)

1CPUあたりの物理コア数

echo $(grep core.id /proc/cpuinfo|sort -u|wc -l)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む