脚本在 Suse 启动时 运行 不正确 (systemd)
Script doesn't run correcly on Suse startup (systemd)
我使用的是 Suse 12 SP1,我正在尝试使用 systemd 脚本在 SO 启动时启动 WebSphere Application Server。
如果我 运行 它是手动的,它可以完美地工作,但是当 运行 使用 systemd 时,它不会。
这是我在 SO 启动时用来运行它的脚本。
ibmbpm.service
[Unit]
Description=IBM Business Process Management
[Service]
User=root
Type=oneshot
RemainAfterExit=yes
ExecStart=/opt/ibm/startBPM.sh
[Install]
WantedBy=multi-user.target
startBPM.sh
#!/bin/bash
/opt/ibm/BPM/v8.5/profiles/Node1Profile/bin/startNode.sh
/opt/ibm/BPM/v8.5/profiles/Node1Profile/bin/startServer.sh SingleClusterMember1
我已经用 systemctl status 命令检查了服务的状态,这里是输出
systemctl状态ibmbpm.service-l
ibmbpm.service - IBM Business Process Management
Loaded: loaded (/etc/systemd/system/ibmbpm.service; enabled)
Active: active (exited) since Thu 2016-11-17 09:06:37 BRST; 33min ago
Process: 2887 ExecStart=/opt/ibm/startBPM.sh (code=exited, status=0/SUCCESS)
Main PID: 2887 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/ibmbpm.service
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:282)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: Caused by: java.lang.ClassNotFoundException: org.eclipse.emf.ecore.EFactory
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.net.URLClassLoader.findClass(URLClassLoader.java:600)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:243)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:777)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.lang.ClassLoader.loadClass(ClassLoader.java:754)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:134)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.lang.ClassLoader.loadClass(ClassLoader.java:731)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.lang.ClassLoader.defineClassImpl(Native Method)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: ... 31 more
如上面的日志所示,当它试图启动服务器时发生了一些错误,但我真的不明白发生了什么,因为 运行 手动以 root (/opt/ibm/startBPM.sh ) 一切正常。
非常感谢任何帮助。
我找到了解决办法。如果您遇到同样的问题,请查看 https://ranierimazili.wordpress.com/2016/11/18/starting-websphere-as-a-systemd-service/
中的解决方案
我使用的是 Suse 12 SP1,我正在尝试使用 systemd 脚本在 SO 启动时启动 WebSphere Application Server。 如果我 运行 它是手动的,它可以完美地工作,但是当 运行 使用 systemd 时,它不会。
这是我在 SO 启动时用来运行它的脚本。
ibmbpm.service
[Unit]
Description=IBM Business Process Management
[Service]
User=root
Type=oneshot
RemainAfterExit=yes
ExecStart=/opt/ibm/startBPM.sh
[Install]
WantedBy=multi-user.target
startBPM.sh
#!/bin/bash
/opt/ibm/BPM/v8.5/profiles/Node1Profile/bin/startNode.sh
/opt/ibm/BPM/v8.5/profiles/Node1Profile/bin/startServer.sh SingleClusterMember1
我已经用 systemctl status 命令检查了服务的状态,这里是输出
systemctl状态ibmbpm.service-l
ibmbpm.service - IBM Business Process Management
Loaded: loaded (/etc/systemd/system/ibmbpm.service; enabled)
Active: active (exited) since Thu 2016-11-17 09:06:37 BRST; 33min ago
Process: 2887 ExecStart=/opt/ibm/startBPM.sh (code=exited, status=0/SUCCESS)
Main PID: 2887 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/ibmbpm.service
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:282)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: Caused by: java.lang.ClassNotFoundException: org.eclipse.emf.ecore.EFactory
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.net.URLClassLoader.findClass(URLClassLoader.java:600)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:243)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:777)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.lang.ClassLoader.loadClass(ClassLoader.java:754)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:134)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.lang.ClassLoader.loadClass(ClassLoader.java:731)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: at java.lang.ClassLoader.defineClassImpl(Native Method)
Nov 17 09:06:37 bpm857 startBPM.sh[2887]: ... 31 more
如上面的日志所示,当它试图启动服务器时发生了一些错误,但我真的不明白发生了什么,因为 运行 手动以 root (/opt/ibm/startBPM.sh ) 一切正常。
非常感谢任何帮助。
我找到了解决办法。如果您遇到同样的问题,请查看 https://ranierimazili.wordpress.com/2016/11/18/starting-websphere-as-a-systemd-service/
中的解决方案