アカウント名:
パスワード:
1.inittabやrc.localなど起動時に一発走らせたいスクリプトを実行する手段がない2.固定IPを付ける手段がない
が一番の不満点だったので「要望の多かったCUDAやDirectML」をみてえーそっちなの?って感想
ちょっと汚い hack ですが、WSL2 の init が起動時に /sbin/mount -a を呼び出すことを利用して、起動時に任意のスクリプトを起動する方法があります。
1. /etc/fstab に次のような行を足します-----none none rc defaults 0 0-----
2. /sbin/mount.rc という実行可能なファイル(スクリプト)を作ります。
こうしておくと、init が /sbin/mount -a を実行し、/sbin/mount が fstab にある 'rc' というファイルシステムのマウントをするために /sbin/rc.mount を呼び出す、という仕掛けで、root 権限で /sbin/mount.rc が呼び出されます。/sbin/mount.rc に実行したいスクリプトを書いておけば、WSLの起動時にそれが実行される、ということになります。
元コメ主です
>/sbin/rc.mount を呼び出す
/sbin/mount.rc の間違いですよね確かに現状mount -aのフックするというトリッキーな手段しかないのは把握しておりトリッキーすぎるので何とかしてほしいなというのが感想です
typoすんません /sbin/mount.rc ですね。
トリッキーすぎますが、現状これしかないですよね。まぁ色々と要望をfeedbackして、いろんな人がvoteしてくれれば徐々に改善されるだろうと信じて、自分はこの件含めてちょいちょいfeedbackを入れてます。
固定IPアドレスで使う、という思想自体がレガシーだからでは?
inittdabがないのはWS2のせいではないのでは。そういうディストリビューションを使ってるだけですよね。個人的にはいまさらrc.localなんて見たくもないですが。
inittabでもupstartでもsystemdでも何でもいいですが/initに何かしてもらう手段がないんですよ/initのソースコードも公開されていないし
そんなあたりまでLinux準拠じゃないとヤダってダダこねるなら素直に仮想マシン使うべき。Windowsと混ざった状態で動くのが売りなんだから、各所がLinuxから外れるのは当然だろう。
起動スクリプトはWindows側のタスクスケジューラで実行すればいいのでは。
linux側で閉じたいんですよ
cronに @bootを指定したらダメなの?WSL2で使えるかどうか確かめてないけど。
WSL自体が閉じてないんだからその方向性で使おうと思うのが無謀なのでは。
それら2つは、どちらも可能なので要望で上がっても方法を明示されるだけです。
> 1.inittabやrc.localなど起動時に一発走らせたいスクリプトを実行する手段がない
ディストリビューション変える(pengwinなど)か、Windowsのタスクスケジューラを使用しましょう。タスクスケジューラ使うのが確実でしょう。
> 2.固定IPを付ける手段がない
外部ネットワークにダイレクトにも変えられますし、プライベートな仮想ネットワークの中への配置でも構いません。もちろんデフォで用意されるNATの枠外のサブネットに置くなら、NATも作りなおすとか
ちなみに pengwinのrc.localも、実現方法は、Windowsのタスクスケジューラですよ。
「man 5 crontab」より@reboot Run once, at startup.
いやそのcrondは誰が起動すんだよ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
WSL2を使ってみた感想 (スコア:0)
1.inittabやrc.localなど起動時に一発走らせたいスクリプトを実行する手段がない
2.固定IPを付ける手段がない
が一番の不満点だったので「要望の多かったCUDAやDirectML」をみて
えーそっちなの?って感想
Re:WSL2を使ってみた感想 (スコア:1)
ちょっと汚い hack ですが、WSL2 の init が起動時に /sbin/mount -a を呼び出すことを利用して、起動時に任意のスクリプトを起動する方法があります。
1. /etc/fstab に次のような行を足します
-----
none none rc defaults 0 0
-----
2. /sbin/mount.rc という実行可能なファイル(スクリプト)を作ります。
こうしておくと、init が /sbin/mount -a を実行し、/sbin/mount が fstab にある 'rc' というファイルシステムのマウントをするために /sbin/rc.mount を呼び出す、という仕掛けで、root 権限で /sbin/mount.rc が呼び出されます。
/sbin/mount.rc に実行したいスクリプトを書いておけば、WSLの起動時にそれが実行される、ということになります。
Re: (スコア:0)
元コメ主です
>/sbin/rc.mount を呼び出す
/sbin/mount.rc の間違いですよね
確かに現状mount -aのフックするというトリッキーな手段しかないのは把握しており
トリッキーすぎるので何とかしてほしいなというのが感想です
Re: (スコア:0)
typoすんません /sbin/mount.rc ですね。
トリッキーすぎますが、現状これしかないですよね。
まぁ色々と要望をfeedbackして、いろんな人がvoteしてくれれば徐々に改善されるだろうと信じて、自分はこの件含めてちょいちょいfeedbackを入れてます。
Re: (スコア:0)
固定IPアドレスで使う、という思想自体がレガシーだからでは?
Re: (スコア:0)
inittdabがないのはWS2のせいではないのでは。
そういうディストリビューションを使ってるだけですよね。
個人的にはいまさらrc.localなんて見たくもないですが。
Re: (スコア:0)
inittabでもupstartでもsystemdでも何でもいいですが
/initに何かしてもらう手段がないんですよ
/initのソースコードも公開されていないし
Re: (スコア:0)
そんなあたりまでLinux準拠じゃないとヤダってダダこねるなら素直に仮想マシン使うべき。
Windowsと混ざった状態で動くのが売りなんだから、各所がLinuxから外れるのは当然だろう。
Re: (スコア:0)
起動スクリプトはWindows側のタスクスケジューラで実行すればいいのでは。
Re: (スコア:0)
linux側で閉じたいんですよ
Re: (スコア:0)
cronに @bootを指定したらダメなの?WSL2で使えるかどうか確かめてないけど。
Re: (スコア:0)
WSL自体が閉じてないんだからその方向性で使おうと思うのが無謀なのでは。
Re: (スコア:0)
それら2つは、どちらも可能なので要望で上がっても方法を明示されるだけです。
> 1.inittabやrc.localなど起動時に一発走らせたいスクリプトを実行する手段がない
ディストリビューション変える(pengwinなど)か、Windowsのタスクスケジューラを使用しましょう。
タスクスケジューラ使うのが確実でしょう。
> 2.固定IPを付ける手段がない
外部ネットワークにダイレクトにも変えられますし、プライベートな仮想ネットワークの中への配置でも構いません。
もちろんデフォで用意されるNATの枠外のサブネットに置くなら、NATも作りなおすとか
Re: (スコア:0)
ちなみに pengwinのrc.localも、実現方法は、Windowsのタスクスケジューラですよ。
Re: (スコア:0)
「man 5 crontab」より
@reboot Run once, at startup.
Re: (スコア:0)
いやそのcrondは誰が起動すんだよ