iMac へのリモートアクセスと起動は可能ですか?

iMac へのリモートアクセスと起動は可能ですか?

私は iPad を使ってリモートでアプリを開発し (iMac に戻ってテストします)、コンピューター上のファイルに他の小さな変更を加えています。これまでは iOS と iMac 用の TeamViewer を使用していましたが、Windows 7 マシンから iMac にアクセスしようとしたときまではうまく機能していました。しかし、あるとき TeamViewer がクラッシュしました。

リモート プログラムが失敗したときに Mac を再起動する方法を探しています。これを行うことができる Applescript はありますか?

また、リモート再起動をサポートする互換性のある iOS アプリを備えた VNC プログラムはありますか?

答え1

TeamViewer を再起動するために再起動する必要はありません。launchdプロセスを監視し、クラッシュした場合に再起動することができます。

まず、実際の実行可能ファイルを特定する必要があります。ターミナルを開いて、TeamViewer バンドル内を調べます。実行可能ファイルはおそらく にあります/Applications/TeamViewer.app/Contents/MacOS/TeamViewerが、状況によって異なる場合があります。正しいパスを見つけたかどうかを確認するには、ターミナルに入力します。TeamViewer が起動する場合は、おそらく正しいパスが見つかります。または、TeamViewer の実行中にアクティビティ モニターを開き、TeamViewer プロセスを特定して、ツールバーの [検査] をクリックします。次に、[開いているファイルとポート] タブで、実行可能ファイルはおそらく の後の最初または 2 番目のエントリとしてリストされます/

追跡するプログラムがわかったら、launchdプロパティ リストを作成できます。これは XML ファイルなので、お気に入りのテキスト エディターで作成することも、Mac OS X 開発ツールにインストールされているプロパティ リスト エディターを使用することもできます。次のものを作成します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>some.meaningful.name</string>

    <key>OnDemand</key>
    <false/>

    <key>ProgramArguments</key>
    <array>
            <string>/path/we/identified/earlier</string>
    </array>
</dict>
</plist>

これを に保存し~/Library/LaunchAgents/some.meaningful.name.plist、ターミナルを開いて以下を実行します。

launchctl load ~/Library/LaunchAgents/some.meaningful.name.plist

これにより、launchd はアイテムをロードして、指定されたプログラムを監視し、何らかの理由で終了した場合は再起動します。これは、ユーザーがログインしている場合にのみ実行されます。起動時に実行するには、plist を に配置し/Library/LaunchDaemons/some.meaningful.name.plist、キー/値のペアを追加してUserName、 load の実行時にGroupNameを使用します。アイテムを削除するには (たとえば、TeamViewer を本当に終了する必要がある場合)、上記のコマンドの load を unload に置き換えるだけです。sudolaunchd

あるいは、リンゴンlaunchd へのグラフィカル インターフェイスが提供され、より簡単になる可能性があります。

答え2

iMac でタスクを設定して、TeamViewer プロセスの存在を確認し、見つからない場合は再起動することもできます。しかし、マシン全体を再起動するのではなく、プロセスだけを再起動したらどうでしょうか?

答え3

コマンドラインに慣れているなら、これはかなり簡単です。iOS 用の SSH クライアントは多数存在します。共有設定パネルから「リモート ログイン」を有効にする必要があります。

これが完了し、適切なネットワークの細かい点が処理されたら、再起動するために必要なのは、iMac に SSH で接続して を実行することだけです$ sudo shutdown -r now。これにより、マシンが再起動します。TeamViewer を起動して実行するために必要なことがこれだけであれば、問題なく動作するはずです。

プロセスを再起動することを提案した人もいます。繰り返しになりますが、TeamViewer をアクティブ化するために必要なのはアプリケーションを起動することだけだと仮定すると、まず、 などのコマンドで既存のハングしたプロセスを強制終了し$ sudo killall TeamViewer、 または同様のコマンドでアプリケーションを再起動する必要があります$ open /Applications/TeamViewer.app

関連情報