~/bin/bash -x

~/bin/bash -x

スクリプトは/etc/init.dにあります。

#!/bin/bash

VMUSER=myname
CURRDATE=(`date +"%m-%d-%Y"` + `date +"%H:%M:%S"`)
CURRTIME=(`date +"%X"`)
FILE=/home/myname/log/vm-services.log
VBPATH=/usr/bin


start(){

   echo "Starting VM Guest"
   echo "Starting VM Services on $CURRDATE at $CURRTIME" >> $FILE
   sudo -u $VMUSER $VBPATH/VBoxManage startvm sherbet --type headless
}

stop(){

   echo "Stopping VM Guest"
   echo "Stopping VM Services on $CURRDATE at $CURRTIME" >> $FILE
   sudo -u $VMUSER $VBPATH/VBoxManage controlvm sherbet savestate
}

restart(){
   echo "Restart"
   echo "Restarted on $CURRDATE at $CURRTIME" >> $FILE
}

case "$1" in
 start)
   echo "In Start" >> $FILE
   start
   ;;
 stop)
   stop
   ;;
 restart)
   restart
   ;;
 *)
    echo "Usage: vm-service {start|stop}"
    exit 1
esac

再起動すると、スクリプトが呼び出され、停止します。ただし、Ubuntuを再起動した後、startは呼び出されません。スクリプトの実行設定が正しいようです。

ここに画像の説明を入力してください。

アイテムを見るとオフのエコーが動作しています。
私がインストールしたスクリプトは次のとおりです。

=> sudo update-rc.d vm-services デフォルト 99 01

問題なく手動で起動/停止できます。 =>/etc/init.d/vm-services start =>/etc/init.d/vm-services stop

どんな提案でも大変感謝します。

アップロード日: 2014 年 8 月 19 日 - 午後 1:24これで、VBoxManageパスを指すVBPATHを含めるように上記のスクリプトを修正しました。しかし、これはうまくいきません。ストップポイントは再起動時に常に呼び出されますが、スタートポイントは呼び出されません。文字列をファイルに送信するだけでは機能しません。再起動するたびにこれが行われます。

ベストアンサー1

しかし、問題は、インストール時にホームディレクトリが暗号化されていることを確認したためです。したがって、スクリプトにデバッグオプションを置くと、次のようになります。

~/bin/bash -x

スクリプトを実行しようとすると、ホームフォルダを復号化できないというメッセージが表示されることがわかりました。だから私はホームフォルダの暗号化を削除し、コンピュータを再起動しましたが、今はすべてうまくいきます。復号化プロセスにはいくつかのステップがあります。ここ

おすすめ記事