2016-07-28 16 views
0

私はこれを動作させようとしてきましたが、成功しませんでした。 /Users/ivanmorelos/Documents/guiprueba.jar私も、このSHファイル作ら起動時にシェルスクリプトを実行する(OS X)

#!/bin/bash 
java -jar guiprueba.jar 

このSHへのパスは次のとおりです。

は、私は、このjarファイル持っている/ユーザ/ ivanmorelosを/ドキュメント/ guiprueba.sh

私はその後

bash /Users/ivanmorelos/Documents/guiprueba.sh 

のように、端末からこのスクリプトを実行する場合jarは完全に実行されます。

は、今私は/ライブラリ/ LaunchDaemonsに行ってきました/そして次com.ivan.gui.plist製:*私はshの実行ファイルを作り、それがivanmorelosに属し、そのjarファイルがない

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple$ 
<plist version="1.0"> 
<dict> 
    <key>Label</key> 
    <string>com.ivan.gui</string> 
    <key>ProgramArguments</key> 
    <array> 
     <string>/Users/ivanmorelos/Documents/guiprueba.sh</string> 
    </array> 
    <key>RunAtLoad</key> 
    <true/> 
    <key>KeepAlive</key> 
    <true/> 
    <key>UserName</key> 
    <string>root</string> 
</dict> 
</plist> 

を。

* plistはrootに属します。

これは、ログイン画面が表示される前に、起動時にjarを実行する必要があることを理解しています。私は正しいですか?しかし、何とか何も起こらず、私はエラーがどこにあるのかわかりません。手伝っていただけませんか?とても感謝しております。単純なファイルを作成するために

touch texto.txt 

ため

java -jar guiprueba.jar 

が、それはまだそれをしない:

EDIT

私はスクリプトに次の変更を行いました。

+0

は、両方のファイル(デーモンおよびスクリプト)アクセス権限 'ルートをお持ちですか?彼らはしないといけない。スクリプトはメインライブラリにも置かれているはずです。スクリプトが実行ループを使用しない限り、 'keepAlive'キーは実際には必要ありません。 – vadian

+0

こんにちは@vadian、両方のファイルには644の特権があります。メインライブラリはどういう意味ですか?スクリプトを/ Library /に移動する必要がありますか? – IvnBam

+0

所有者が 'root'であり、グループが' wheel'であることがより重要です。また、デーモンがローカルドメインで動作しているので、 'Application Support'のサブフォルダにある/ Libraryにスクリプトを移動してください。 – vadian

答えて

0

私は最終的にこの問題の解決策を見つけました。

root:wheelが所有する/ Users/ivanmorelos/Documents /に私のjarを置きました。 ls -lはこの示しています。そして、/システム/ライブラリ/ LaunchDaemons /と、次の権限に自分のplistを移動

-rw-r--r-- 1 root wheel 2365 Jul 29 11:27 guiprueba.jar 

-rw-r--r-- 1 root wheel 372 Jul 29 12:49 com.ivan.plist 

はまた私のスクリプトを動かすの/ usr/sbinに/とに権限以下:

-rwxr-xr-x 1 root wheel 129 Jul 29 13:07 /usr/sbin/guiprueba 

やlsのよう-lショー私は.SH

を取り出して、それはそれです。今、私のスクリプトとjarが起動時に実行されます。

これが最終のplistです:ホイール644`:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$ 
<plist version="1.0"> 
<dict> 
     <key>Label</key> 
     <string>com.ivan</string> 
     <key>ProgramArguments</key> 
     <array> 
       <string>/usr/sbin/guiprueba</string> 
     </array> 
     <key>RunAtLoad</key> 
     <true/> 
</dict> 
</plist> 
関連する問題