サービスの開始と権限の拒否

サービスの開始と権限の拒否

Javaプログラムを実行するスクリプトがあり、起動時にスクリプトを開始するサービスを作成したいと思います。

だからrun.shというスクリプトを作成しました。

/test/run.sh

#!/bin/bash
java -cp myjar:/test/lib/* com.xxxx.util.AmazonS3FileDownloader

testというファイルも作成しました。/etc/init.d

/etc/init.d/test

#!/bin/bash
/test/run.sh

テスト目的で、テストフォルダに/testフルアクセス権(chmod 777 / test)を付与しました。

drwxrwxrwx    7 testuser testuser  4096 Dec 12 13:28 test

/etc/ini.dフォルダ内にある内容です。

-rwxr-xr-x  1 root root  2062 Dec 12 13:18 test

このコマンドを実行すると。すべてが大丈夫です。エラーもなく、プログラムもうまく動作します。

$ /test/run.sh

しかし、何らかの理由で同じことをしましたが、サービスを使用すると無視されます。動作しません。

$ service test start

receipts_download.logフォルダの作成中に私の権限が拒否されました/test

log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: receipts_download.log (Permission denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:142)
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:290)
    at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:194)
    at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:164)
    at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:257)
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:133)
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:97)
    at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:689)
    at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:647)
    at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:544)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:440)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:476)
    at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:471)
    at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
    at org.apache.log4j.Logger.getLogger(Logger.java:118)
    at com.xxxxx.util.AmazonS3FileDownloader.<init>(Unknown Source)
    at com.xxxxx.util.AmazonS3FileDownloader.main(Unknown Source)

/testすべての権限があり、$ /test/run.sh問題なく実行できますが、実行できない理由$ service test start

ご協力ありがとうございます。

ベストアンサー1

cwdスクリプトは "receipts_download.log"ファイルを生成しているようですが、cwdスクリプトを実行すると生成されません/testcd /testスクリプトを実行する前に正しく実行されます。

おすすめ記事