OS Xの起動時にsudoとパスワードを使用してコマンドラインアプリを自動的に実行する


0

Macの起動時/ログイン時にアプリを実行する必要があります。バックグラウンドで起動し、私を中断することなく作業を開始したい、または常に忘れてしまい、必要なときに実行されていなかったため、起動する必要があります!

AppleScriptを使用して、Terminalに実行してパスワードを入力するように指示しようとしましたが、複数のTerminalウィンドウを開いて動作しなくなります。理想的には、ユーザーのログイン項目に追加できるスクリプトが必要で、それが実行されます。

アプリにはパスワード引数を取る方法もありません。また、sudoと同様にパスワードもあります。applescript(実行可能ファイルに作成可能)として実行できるソリューション、またはコマンドラインスクリプトが必要ですが、それらについてはわかりません。

これは私が入力する手動コードです

$ sudo serverStatus
password:123456
password:serverpass

私のAppleScript:

tell application Terminal
 activate
 do shell script "sudo serverStatus"
 delay 5
 do shell script "123456"
 delay 2
 do shell script "serverpass"
end tell

そのアプリはカスタムビルドのものですか?正確には何ですか?どのAppleScriptコマンドを試しましたか?
slhck

それは友人によってしばらく前に構築されたカスタムアプリですので、サーバーの監視とログを行うことができますが、彼は私が必要な機能で更新するには忙しすぎます(無料の好意でした)。試したapplescriptコードで質問を更新しました。3つのウィンドウを開きましたが、動作していないようです!
Designer023

回答:


2

do shell scriptAppleScript内でシェルスクリプトを実行するために使用され、実際にはターミナルウィンドウを開きません。で新しいターミナルウィンドウを開きdo script、でパスワードの入力をエミュレートできますkeystroke

tell application "Terminal"
    do script "sudo serverStatus"
    activate
end tell
delay 1
tell application "System Events"
    keystroke "login password" & return
    delay 1
    keystroke "server password" & return
end tell

あなたがそれをやっているなら、ユーザーアカウントにログインした後に実行されるログインフックを使うこともできます。このフックは、以下を使用して適切なAppleScriptを呼び出すことができます。

osascript /path/to/script.scpt

ただし、手動でログイン項目に追加するだけでは、これは少し多すぎるようです。


@Lauriに感謝します。これを試すことができるマシンにはいませんでした。
slhck

1
名前にスペースが含まれているプログラムを開きたいと思った人は、2つのバックスラッシュになることに注意してください。 MacOSの/ AptanaStudio」
Senicaゴンザレス

好奇心が強い、なぜAptanaが必要なのsudoでしょうか?@sen
slhck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.