内容は/etc/network/interfaces
次のとおりです。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up /etc/network/if-up.d/sshstart
そして、sshstart
その中に以下を持つスクリプトは次のとおりです。
curl something something darkside send a file over ftps in the background &
/usr/bin/autossh -M 0 -f -N -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -R 127.0.0.1:2005:127.0.0.1:22 -R 192.168.1.10:2006:192.168.2.110:1912 -L 127.0.0.1:5249:192.168.1.212:5249 username@17.16.15.2 -p 8080
マシンが再起動すると、curl
コマンドが複数回実行され、ファイルがFTPサーバーで2〜3回終了します。プロセスを見ると、autosshの複数のインスタンスが実行されているようです...これがどのようになっているかわからないautosshは何らかの処理を行いますが、curlがファイルを複数回アップロードしないようにする必要があります。
私の直感は、sshstart
スクリプト全体が複数回実行されていることですが、理由がわかりません。
起動時にネットワークセットアッププロセスの詳細を検索してみましたが、見つけることができたのは、インターフェースファイルの構文情報だけでした。
誰かが助けてくれますか?
ありがとうございました。
---編集---以下の
ように、インターフェースファイルを次のように変更しました(ポストアップの上の空の行を削除しました)。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up /etc/network/if-up.d/sshstart
そして、sshstartに次の行を追加しました:
echo $(date)>>/run/shm/sshstart.log
/run/shm/sshstart.log
再起動後の内容は次のとおりです。
Wed Oct 29 08:07:00 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
したがって、4回実行されました:(どうなっているのですか?