起動デーモンにシェルスクリプトを実行させることができません


0

何らかの理由で、コンピューターの起動時にシェルスクリプトを実行できません。スクリプト自体は問題ありませんが、何らかの理由で、Launch Daemonがジョブを開始していません。助けてください。

起動デーモンは/Library/LaunchDaemons/local.pingtest.plistに保存されます

起動デーモンのPlist: ここに画像の説明を入力してください

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
    <key>Label</key>
    <string>local.pingtest</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>/pingtest/pingtest.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

私のシェルスクリプト: ここに画像の説明を入力してください

/usr/bin/nohup /sbin/ping -i 5 ipaddress | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-lou.txt &

/usr/bin/nohup /sbin/ping -i 5 www.google.com | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-int.txt &

/usr/bin/nohup /sbin/ping -i 5 ipaddress | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-fcc.txt &

回答:


1

最初に、local.pingtest.plistでのpingtest.shの定義に関連するパスを確認します。

私はまだMacで起動デーモンをいじっていませんが、代わりに/ System / Library / LaunchDaemonsに起動デーモンを置く必要があるかもしれません。ログインして表示するまでに他の場所を無視してしまうのはなぜかはわかりませんが、試してみる価値のあるシステムでは以前に仕様が無視されていました。

次に、競合するラベル識別子のようなものをチェックし、他のキーがそれらが意味すると思うことを意味することを確認します。

スクリプトが起動されていないデーモンに依存しているように見えませんが、それらは覚えておくべきものです。


0

スクリプトlaunchctlを「解析」するとエラー「nohup:コンソールからデタッチできません:デバイスの不適切なioctl」がスローされ、最後の後に別のコマンドが必要&です。

適切なシェバンを追加し、シェルスクリプトの/usr/bin/nohup最後の部分だけでなく部分も削除する&と、動作します。

#!/bin/sh

/sbin/ping -i 5 www.google.com | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-lou.txt &
/sbin/ping -i 5 ip1 | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-int.txt &
/sbin/ping -i 5 ip2 | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-fcc.txt

上記の変更を行い、Macを再起動しました。3つの.txtファイルを作成しましたが、空です。ps aux | grep pingは、pingが実行されていないことを示します。
rdweise76 16

@ rdweise76うーん、VMでテストし、正常に動作しました。たぶん、打ち上げデーモンが実行されていないか、間違ったアクセス権が設定され...
klanomath
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.