web-dev-qa-db-ja.com

Ubuntu 16.04で長時間実行されているudevスクリプト

Ubuntu 14.04では、次のように完全に機能するシンプルなudevルールを使用した、実行時間の長いbashスクリプトがあります。

ACTION=="change", SUBSYSTEM=="block", RUN+="/opt/script.sh"

Ubuntu 16.04では、うまくいきません。スクリプトは実行を開始しますが、完了する前に強制終了されます。その後、スクリプトを切り離すwarapperスクリプトを呼び出すようにudevルールを変更しようとしました。私は試した:

#!/bin/sh
Nohup /opt/script.sh  &

それから私は試しました:

#!/bin/sh
/opt/script.sh | at now

無駄に。

その後、systemdサービスを作成しようとしました...

ACTION=="change", SUBSYSTEM=="block", ENV{SYSTEMD_WANTS}=="justrunthescript.service"

/etc/systemd/system/justrunthescript.service

[Unit]
Description=Just run the script

[Service]
ExecStart=/opt/script.sh

ある時点でスクリプトを実行するようになりましたが、私のスクリプトは$ ID_FS_TYPEのようなudevパラメーターに依存していますが、この方法では渡されません。

私が欲しいのは非常に簡単で、ディスクを挿入してudevルールからスクリプトを実行するだけで、スクリプトを殺さないでください。これについて最善の方法は何ですか?

4
Benjamin Bryan

私がする必要があることに気づいた:

 #!/bin/sh
 echo /opt/script.sh | at now
3
Benjamin Bryan