rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

Windows : コマンドプロンプト上でシステムを再起動・シャットダウンするコマンド

2024 Jan. 29.

管理者権限を取得したうえで、所定のコマンドを入力する。


一般ユーザー権限のコマンドプロンプト上で

管理者権限のコマンドプロンプトを起動する。
> start cmd.exe /k "runas /user:Administrator cmd.exe"

再起動
> shutdown /r /t 0
"/r"オプションで再起動を指定し、"/t"オプションでタイマーを設定する。"/t 0"は、即座に再起動することを意味する。

シャットダウン
> shutdown /s /t 0
"/s"オプションでシャットダウンを指定し、"/t"オプションでタイマーを設定します。"/t 0"は、即座にシャットダウンすることを意味する。


Windows : コマンドプロンプトとPowerShellの判別

2024 Jan. 29.

環境:Windows 11 Home edition

"ver"コマンドと"$PSVersionTable.PSVersion"コマンドを入力してみる。

コマンドプロンプトにて

>ver

Microsoft Windows [Version 10.0.22631.3085]


>$PSVersionTable.PSVersion
'$PSVersionTable.PSVersion' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

PowerShellにて

> ver
ver : 用語 'ver' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください
。
発生場所 行:1 文字:1
+ ver
+ ~~~
    + CategoryInfo          : ObjectNotFound: (ver:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException


> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      22621  2506


ネットワークアダプタのmetric値変更

2024 Mar. 09.
2024 Feb. 10.
2024 Jan. 27.

複数のネットワークアダプタがある時は、metric値が小さいアダプタが優先して利用される。


metric変更ツールをインストール

$ sudo apt update && sudo apt install ifmetric

ネットワークアダプタのmetric値、IPアドレスを確認

$ ip route
default via 192.168.11.1 dev wlxd1c proto static metric 601 
default via 192.168.11.1 dev wlx2c0 proto static metric 603
192.168.11.0/24 dev wlxd1c proto kernel scope link src 192.168.11.10 metric 601 
192.168.11.0/24 dev wlx2c0 proto kernel scope link src 192.168.11.11 metric 603

$ ip a

metric値を変更する

wlxd1cポートのmetric値を605に設定する例
$ sudo ifmetric wlxd1c 605


システムが再起動すると設定が失われるので、起動時に自動設定されるようにする

/MY/SCRIPT/metric_change.sh を作成する。
#!/bin/bash
/usr/sbin/ifmetric  wlxd1c 605

実行属性を付ける。

$ sudo chmod 700 /MY/SCRIPT/metric_change.sh


自動起動設定登録する


/etc/systemd/system/metric_change.service を作成する。

[Unit]
Description = change metric
Wants=network-online.target
After=network-online.target

[Service]
Type=forking
TimeoutStartSec=30
ExecStart=/MY/SCRIPT/metric_change.sh
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target
$ sudo chmod 644 /etc/systemd/system/metric_change.service
$ sudo systemctl enable metric_change.service

"Docker版Mirakurun + 非Docker版MySQL + 非Docker版EPGStation"を"Windows 11ホスト + PLEX PX-W3U4チューナー + VMware Workstation 17 Player + Xubuntu 22.04"にインストール

2024 Mar. 02.
2024 Feb. 25.
2024 Jan. 22.

未解決事項

・ホストOSと仮想OSとの共有フォルダーに設定したディレクトリをLAN内のリモートデバイスNFSファイルシステムでマウントできない。

(1) PCにPLEX PX-W3U4チューナー、B-CAS ICカードリーダ、録画ファイル保存用ストレージを接続する。


(2) Windowsの時刻合わせ設定

Windows起動時に自動的に時刻合わせする - rokkonet

(3) 次の記事を参考に、Wondows 11にVMware Workstation 17 Playerをインストールし、仮想マシン上のゲストOSとしてXubuntu 22.04をインストールする。

VMware Workstation Player 17をWindows 11 Homeにインストールし、Xubuntu 22.04の仮想マシンを作成 - rokkonet

(4) ブリッジ・ネットワークを作成する。

VMware Workstation 17 Playerの「仮想マシンの設定」-> ネットワークアダプタで「ブリッジ」に設定する。

「アダプタの設定」は、Windowsの設定 -> 「ネットワークとインターネット」を開き、ネットワークに接続しているアダプタの「説明」欄のものに合わせた。

Xubuntuのネットワーク設定で固定アドレスに設定する。(ホストOSのネットワークのIPアドレスにする)


(5) 次の記事を参考に、録画ファイル保存用ストレージをWindowsに接続し、ntfsファイルシステムで初期化し、そのドライブレターを(Zドライブあたりに)固定化する。

windows 11 ドライブレターの固定化 - rokkonet

(6) 次の記事を参考に、Xubuntuに接続するUSB機器(PX-W3U4、B-CASカードリーダ)を自動接続設定する。

VMware workstation 17 : USBデバイスの自動接続設定 - rokkonet

(7) 次の記事を参考に、ホストOSとゲストOSの共有フォルダーを設定する。

録画ファイルを保存するディレクトリは共有フォルダにしておく。
VMware Workstation 17 Player : Windows 11 ホストOSとXubuntu 22.04 ゲストOSとの共有フォルダー設定 - rokkonet

(8) 次の記事を参考に、XubuntuSSHサーバーをインストールし、WindowsからXubuntuSSH接続できるようにする。

OpenSSH SSHサーバー、SSHクライアント インストール、鍵生成・配置 - rokkonet

(9) 次の記事を参考に、PC起動時にXubuntuが起動するようにWindowsのタスクスケジューラを設定する。

VMware Workstation 17 Player : Windowsホストシステム起動時に仮想マシンを起動する - rokkonet

(10) 必要に応じて、LAN内のリモートデバイスからゲストOSにSSH接続できるようにする。


(11) 必要に応じて、LAN外からゲストOSにSSH接続できるようにする。


(12) 必要に応じて、次の記事を参考に、ホスト(Windows)をWake On Lanに対応させる。

Windows Wifi : Wake On Lan ( WOL )の設定 - rokkonet

(13) 次の記事を参考に、Xubuntuを自分用にセットアップする。

ubuntu系linuxインストール - rokkonet

(14) ここまでのバックアップとして、Windowsシステムイメージを保存する。


(15) 次の記事を参考に、XubuntuPLEX PX-W3U4のドライバをインストールする。

PLEX PX-W3U4 TVチューナー ドライバをxubuntu 22.04にインストール - rokkonet

(16) 次の記事を参考に、XubuntuにDocker版Mirakurun, 非Docker版MySQL, 非Docker版EPGStationをインストールする。

"Docker版Mirakurun + 非Docker版MySQL + 非Docker版EPGStation"をPLEX PX-W3U4チューナーのXubuntu 22.04にインストール - rokkonet

(17) ここまでのバックアップとして、Windowsシステムイメージを保存する。

EPGStationを空にする。(予約、録画済、ルール設定がない状態)

EPGStation, Mirakurunを停止しておく。

(EPGStationの停止)
$ sudo systemctl stop epgstation.service

(Mirakurunの停止)
$ su - tv
$ cd ~/docker/Mirakurun/docker
$ docker-compose -f ./docker-compose.yml down

(確認)
Mirakurunの稼働状況確認
$ curl -o - http://localhost:40772/api/version

EPGStationの稼働状況確認
$ curl -o - http://localhost:8888

(参考。次回システム起動時に行うこと)
+++ ここから +++
Mirakurunの稼働状況確認
$ curl -o - http://localhost:40772/api/version
あるいは、ブラウザで http://EPGSTATION.HOST.IP.ADDRESS:8888 を開いてEPGStationの稼働を確認する。

Mirakurunの起動
$ su - tv
$ cd ~/docker/Mirakurun/docker
$ docker-compose -f ./docker-compose.yml up -d

EPGStationの稼働状況確認
$ curl -o - http://localhost:8888
あるいは、ブラウザで http://EPGSTATION.HOST.IP.ADDRESS:8888 を開いてEPGStationの稼働を確認する。

EPGStationの起動
$ sudo systemctl enable epgstation.service
$ sudo systemctl start epgstation.service

システムを再起動してMirakurun、EPGStationの自動起動を確認する
$ sudo reboot
+++ ここまで +++

VMware Workstation Playerを停止しておく。

Windowsシステムイメージを保存する


(18) LAN外からアクセスするために、次の記事を参考に、OpenVPNをインストールする。

OpenVPNインストール ルーティング方式 Easy-RSA3利用、TLS認証あり版 - rokkonet

(19) ここまでのバックアップとして、Windowsシステムイメージを(17)と同じ要領で保存する。


Windows上のVMware Workstation Playerで、GUIなしで稼働しているゲストOSをWindowsからシャットダウンする

2024 Jan. 20.
2024 Jan. 19.

VMware Workstation Playerを起動し、仮想マシンをパワーオフする。



PowerShellで下記を実行してゲストOSを停止する。

この方法では、ホストOSを再起動したらゲストOSがGUIなしで稼働していた。

> cd "C:\Program Files (x86)\VMware\VMware Player"
> .\vmrun.exe -T player stop "C:\path\to\your\virtual\machine.vmx" hard

docker-compose.ymlの "dockerfile:" でのルートディレクトリは "context:" に記述されたディレクトリ

2024 Jan. 14.

docker-compose.ymlに次の記述がある場合、Dockerfileとdocker-compose.ymlのファイル配置は /hoge/app/Dockerfile、/docker-compose.ymlでしょうか?
そして、hogeディレクトリとdocker-compose.ymlファイルの親ディレクトリは同じディレクトリでしょうか?

(docker-compose.yml)

version: '3'
services:
  app:
    build:
      context: /hoge
      dockerfile: app/Dockerfile


(Chat GPTより)
提供された docker-compose.yml ファイルの中で、context パラメータが /hoge に設定されています。これは Docker ビルドのコンテキストとして使用されるディレクトリを指定するものです。この場合、Dockerfile は /hoge/app/Dockerfile に配置されるべきです。
ですので、ディレクトリ構成は次のようになります:
・"/hoge/app/Dockerfile" : Dockerfile の配置場所
・"/docker-compose.yml" : Docker Compose ファイルの配置場所

"/hoge"ディレクトリは Docker ビルドのコンテキストとして使われ、その中に app/Dockerfile が配置されています。 docker-compose.yml ファイル自体が / ディレクトリに配置されている必要はありません。ディレクトリ構成全体を考えると、docker-compose.yml ファイルがあるディレクトリにより依存しています。