CentOSサーバーに権限の問題があります。
dmidecodeからいくつかの値を読み取るNetCoreアプリケーションを作成しました。 CentOSサーバーにアプリケーションをデプロイするときに、次のコマンドを実行しました。
chmod 777 ApplicationName
その後、実行すると、すべてがうまく動作します。
私の問題は、crondでアプリケーションを設定しようとしたときに次のように実行することです。
1) service crond stop
2) crontab -e
3) * * * * * cd /ApplicationFolder && ./ApplicationName
4) service crond start
私のアプリは実行されますが、読みたいdmidecode値を取得できません。コンソールアプリで実行すると正常に動作するため、権限の問題があるとします。
次のようにしてcrond行にユーザーを設定してみました。
* * * * * root cd /ApplicationFolder && ./ApplicationName
しかし、何も起こらず、アプリが起動しません...
私が間違っていることを知っている人はいますか?
編集する
コメントで提案したように、crontabを次のように変更しました。
* * * * * /ApplicationFolder/ApplicationName
しかし、同じことが起こっています...
権限関連の問題が発生する理由は、プログラムをアプリケーションとして実行すると値がテキストファイルに書き込まれ、crondを使用してアプリケーションを実行すると同じ情報が書き込まれますが、値が書き込まれるためだと思います。空です。
また、dmidecodeからシリアル番号を読み取るにはroot権限が必要ですが、現在crontabを使用しているアカウントはすでにルートという内容も読みました。
ベストアンサー1
この種の問題が発生した場合は、絶対パスを使用して問題を解決しました。
cronへの相対パスに問題があるようです。
デフォルトでは、
dmidecode
私は持っています:
/usr/sbin/dmidecode
これは私にとって効果的です。