我正在尝试为 cassandra 设置本地 LaunchAgent,但遇到了一个问题,因为bin/cassandra
它只是一个启动的 shell 脚本:
/usr/bin/java -ea -javaagent:blah blah blah blah blah blah blah
我的 LaunchAgent 启动脚本,但要么从不启动 cassandra,要么不允许它产生子进程,或者,我不完全确定发生了什么,但似乎我以前遇到过这个问题。我知道让它工作的唯一方法是将我的 LaunchAgent 从:
<?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>com.cassandra.agent</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>UserName</key>
<string>root</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/cassandra/bin/cassandra</string>
</array>
<key>WorkingDirectory</key>
<string>/path/to/cassandra/bin</string>
</dict>
</plist>
至...
...
<key>ProgramArguments</key>
<array>
<string>/usr/bin/java</string>
<string>-ea</string>
<string>-javaagent:blah</string>
<string>blah</string>
<string>blah</string>
<string>blah</string>
<string>blah</string>
<string>blah</string>
<string>blah</string>
</array>
我想知道是否有人知道我如何仅从 LaunchAgent 引用 shell 脚本,而不是从中提取所有参数ps aux