我有一个脚本(让我们称之为parent.sh),它对运行java进程的第二个脚本(child.sh)进行2次调用.child.sh脚本在后台运行,方法是在parent.sh中放置一行&.但是,当我运行parent.sh时,我需要按Ctrl + C返回终端屏幕.这是什么原因?是否与child.sh进程在parent.sh进程下运行这一事实有关.所以parent.sh不会死,直到孩子们这样做?
parent.sh
#!/bin/bash
child.sh param1a param2a &
child.sh param1b param2b &
exit 0
Run Code Online (Sandbox Code Playgroud)
child.sh
#!/bin/bash
java com.test.Main
echo "Main Process Stopped" | mail -s "WARNING-Main Process is down." user@email.com
Run Code Online (Sandbox Code Playgroud)
如您所见,我不想在后台运行java进程,因为我想在进程终止时发送邮件.从功能的角度来看,如上所述可以正常工作,但我想知道如何在执行parent.sh后让它返回终端.
我有一个正在接收一些 TextMessage 的消息侦听器。当它收到 ObjectMessage 时,我希望它停止侦听队列。我的问题是,当我在 onMessage(Message msg) 方法中调用 consumer.close() 时,ObjectMessage 似乎没有从队列中删除。如果我在 onMessage() 方法之后使用一些标记告诉消费者关闭,则侦听器可能会在实际关闭之前消耗另一条消息。有什么建议?这是一些代码。Session、Connection 和 InitialContext 尚未关闭。
public class MyListener implements MessageListener{
MessageConsumer consumer;
public MyListener(MessageConsumer mc){
consumer = mc;
}
@Override
public void onMessage(Message msg) {
try{
if(msg instanceof ObjectMessage){
consumer.close();
}
if (msg instanceof TextMessage){
TextMessage tmsg = (TextMessage) msg;
String xml = tmsg.getText();
// do some stuff
}
}catch(Exception e){
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud) 为什么以下输出为style.backgroundImage的空字符串?如何检索图像的高度和宽度,以便我可以适当地设置div的尺寸?
<!DOCTYPE html>
<html>
<head>
<link href="test.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="myDiv" onclick="outputBGImageUrl(this)">
Click To Get BG Image Property
</div>
<script type="text/javascript">
function outputBGImageUrl(elem){
var bgImage = elem.style.backgroundImage;
console.log(bgImage);
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
CSS:
.myDiv{
background-image:url(box.jpg);
}
Run Code Online (Sandbox Code Playgroud)