Mac-Osx
啟動 PathState 使用
我正在嘗試使用 PathState 在 Mac OSX 上啟動和停止守護程序。它從我創建一個名為 /var/cache/myjob/run 的文件開始。但是,當文件被刪除時,守護程序不會再次停止。
你如何使用 PathState 讓它停止?
啟動配置
<?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>StandardOutPath</key> <string>/var/log/tomcat/server.log</string> <key>StandardErrorPath</key> <string>/var/log/tomcat/server.log</string> <key>Label</key> <string>com.clcbio.clcserver</string> <key>WorkingDirectory</key> <string>/Users/tomcat/tomcatdist</string> <key>GroupName</key> <string>daemon</string> <key>KeepAlive</key> <dict> <key>PathState</key> <dict> <key>/var/cache/tomcat/run</key> <true /> </dict> </dict> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>-c</string> <string>java -Xmx512m -XX:MaxPermSize=192m -Djava.awt.headless=true -Djava.library.path=./native -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=./conf/logging.properties -Djava.endorsed.dirs=./endorsed -Dcatalina.base=./ -Dcatalina.home=./ -cp bin/bootstrap.jar:./conf org.apache.catalina.startup.Bootstrap</string> </array> <key>UserName</key> <string>tomcat</string> </dict> </plist>
您不能使用已啟動的項目來做到這一點。launchd 項指定程序應該在什麼條件下啟動(如果它退出,可能會重新啟動),但不指定應該停止的條件。您需要使用其他一些機制來停止該過程。(請注意,您可以使用 eg 停止正在執行的守護程序
sudo launchctl stop com.clcbio.clcserver
)