- 投稿日:2020-11-27T22:59:58+09:00
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;
- 投稿日:2020-11-27T18:26:45+09:00
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 root8.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 rootyum 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.サイトへアクセスし無事にログインできたことを確認.
さいごに
- 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のモジュールらは近くコンテナ化したなぁ(´ω`)
- 投稿日:2020-11-27T16:13:04+09:00
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
- 投稿日:2020-11-27T12:09:03+09:00
【備忘録】コマンドライン操作_超基礎編
忘れることはないだろうと思いつつ、備忘録。
基礎的な操作
ファイルを作成する
$ touch ファイル名ファイルの中身を表示する
$ cat ファイル名ディレクトリを作成する
$ mkdir ディレクトリ名ディレクトリを移動する
$ cd ディレクトリ名カレントディレクトリの確認
$ pwdディレクトリの中身を表示する
$ ls1つ親のディレクトリへ移動する
$ cd ..ホームディレクトリへ移動する
$ cdファイルを移動させる
$ mv 移動するファイル名もしくはディレクトリ名 移動先のディレクトリ名ファイル名を変更する
$ mv ファイル名 新しいファイル名ファイルをコピーする
$ cp コピーするファイル名 新しいファイル名ディレクトリをコピーする
$ cp -r コピーするディレクトリ名 新しいディレクトリ名ファイルを削除する
$ rm ファイル名ディレクトリを削除する
$ rm -r ディレクトリ名
- 投稿日:2020-11-27T12:09:03+09:00
【備忘録】コマンドライン操作_超基礎
忘れることはないだろうと思いつつ、備忘録。
基礎的な操作
ファイルを作成する
$ touch ファイル名ファイルの中身を表示する
$ cat ファイル名ディレクトリを作成する
$ mkdir ディレクトリ名ディレクトリを移動する
$ cd ディレクトリ名カレントディレクトリの確認
$ pwdディレクトリの中身を表示する
$ ls1つ親のディレクトリへ移動する
$ cd ..ホームディレクトリへ移動する
$ cdファイルを移動させる
$ mv 移動するファイル名もしくはディレクトリ名 移動先のディレクトリ名ファイル名を変更する
$ mv ファイル名 新しいファイル名ファイルをコピーする
$ cp コピーするファイル名 新しいファイル名ディレクトリをコピーする
$ cp -r コピーするディレクトリ名 新しいディレクトリ名ファイルを削除する
$ rm ファイル名ディレクトリを削除する
$ rm -r ディレクトリ名
- 投稿日:2020-11-27T09:42:53+09:00
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を引っ張ってこれる。同一ページ内に記載されないのでコードが見やすくなる。上記二つを併記した場合は下に書いてある方が後に実行されるため優先されて表示される。
一行だけスタイルを変えたい場合は一番最後に実行されるようにインラインで書く。
- 投稿日:2020-11-27T00:49:19+09:00
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) nprocCPU数
echo $(grep physical.id /proc/cpuinfo|sort -u|wc -l)1CPUあたりの物理コア数
echo $(grep core.id /proc/cpuinfo|sort -u|wc -l)