MacコンピュータをリモートでシャットダウンするiPhoneアプリがあります。このアプリケーションを使用してUbuntuコンピュータをシャットダウンしたいと思います。
閉じようとすると、アプリケーションに次のメッセージが表示されます。
Ubuntuが終了したら:
「接続エラー」
Ubuntuが始まると:
"zsh: 1: コマンドが見つかりません: osascript"
これにより、アプリケーションが実際にzshにアクセスできると考えられます。それでは、次のように「osascript」のエイリアスを作成できませんか?
alias osascript="shutdown -h now"
問題は、Iphoneアプリからまだメッセージを受信していることです。
"zsh: 1: コマンドが見つかりません: osascript"
どんなアイデアがありますか?私の考えでは、アプリケーションはSSHを使用しており、Ubuntuのエイリアスと同じユーザー名を使用しているようです。
失敗した検索の場合:「.zsh_history」にリモートアクセスコマンドを表示する必要がありますか?これにはアプリケーションのコマンドは表示されません。
答え1
Linux をサポートしていないアプリケーションを使用しないでください。 「RMsrv Reboot」は、Linuxの起動とシャットダウンに適しています。
答え2
ssh
エラーメッセージは、少なくとも次のssh someuser@somehost somecommand
コマンドを直接実行しようとした失敗した試みと一致します。zsh
アプリケーションの起動方法とエイリアスを入れた構成ファイルによっては、ロードされない場合があります。また、履歴ファイルは対話型セッションによってのみ記録されます(「Good Thing™」です。すべてのzshスクリプトが実行されたときにその内容を履歴ファイルにダンプしたと想像してください)。
osascript
コマンドラインはAppleScriptソルバーです。Forquarヒント)。したがって、Ubuntuでは動作しません。ただし、アプリケーションはコマンドライン引数を介していくつかの小さなスクリプトを実行してMacを終了する可能性があります。
コンピュータをシャットダウンするだけの場合は、
/usr/bin/osascript
Ubuntuコンピュータにいくつかのスクリプトを配置してコンピュータをシャットダウンできます。たとえば、#!/bin/sh sudo /sbin/shutdown -h now
これは、少なくともパスワードのないアクセスを想定しています。
shutdown -h now
ファイルまたはその中に含まれるファイルに次の行を追加するだけ/etc/sudoers
です。YOURUSERNAME ALL = NOPASSWD: /sbin/shutdown -h now
他のコマンド(終了、再起動など)に反応するには、アプリケーションで使用されているコマンドラインパラメータを検索してください。これを行うには、まずUbuntuコンピュータに次のスクリプトを名前で配置します
osascript
(/usr/bin
リストされているすべてのパスはPATH
理論的にこれを行う必要があります。残念ながら、ssh
独自の設定があることがよくあります。以下を参照してください)。PATH
#!/bin/sh logfile='/path/to/logfile' echo "$@" >> "$logfile" echo '---->8----' >> "$logfile"
実行可能にすることを忘れないでください(
chmod 755 /usr/bin/osascript
)。これで、アプリケーションが提供する必要があるさまざまなオプションを実行し、毎回ログファイルの出力を確認できます(役に立つ可能性
tail -F /path/to/logfile
があります)。各出力の違いを見つけ、それに応じて反応するスクリプトを書くだけです。
上記のように、ターミナルセッション()で得られたものと大きく異なる可能性があるssh
独自の設定を使用できます。幸い中古を簡単に回収できます。PATH
echo $PATH
PATH
ssh
ssh localhost 'echo $PATH'
/usr/local/sbin
またはそこにいる場合は、/usr/local/bin
そこにスクリプトを置くことをお勧めしますが、リストされているディレクトリのいずれかが可能です。