首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在亚马逊EC2运行一个罐子?

如何在亚马逊EC2运行一个罐子?
EN

Stack Overflow用户
提问于 2014-01-23 17:01:25
回答 1查看 14.9K关注 0票数 5

我是亚马逊的新手。我有一个Java文件,它读取爬行数据的GBs,我正在使用AWS ToolKit for Eclipse运行这个文件。这里的缺点是,如果我需要读取所有爬行的数据,我必须让我的机器运行数周,这是不可能的。除此之外,我不能将GBs数据下载到我的本地PC上(因为它正在读取数据)。

有没有办法可以将Jar上传到Amazon,而Amazon不需要使用我的计算机就可以运行它?我听说网络爬虫在亚马逊运行了几个星期,没有将数据下载到开发人员机器中,也没有让开发人员在不关闭几个月的情况下打开机器。

我想要的功能就像亚马逊Elastic中的“作业流”一样--减少。你上传代码,它就会在里面运行。不管你是否打开“你的”机器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 17:45:15

可以使用*nix的诺赫普命令运行

代码语言:javascript
运行
复制
nohup java -jar myjar.jar 2>&1 >> logfile.log &

这将运行您的jar文件,将输出stderr和stdout定向到logfile.log。需要&,以便在后台运行,释放命令行/ shell/

!!编辑!!

值得注意的是,一旦工作开始,我找到的最简单的方法是:

ps -ef | grep java

返回ec2-user 19082 19056 98 18:12 pts/0 00:00:11 java -jar myjar.jar

然后是kill 19082

注意,您可以减少tail -f logfile.log或其他类似的导数,cat,头查看jar的输出。

对问题的回答/评论

嗨。您可以使用System.out.println(),是的,这将在logfile.log中结束。指示为2&>1的命令,它的意思是“将流2重定向到流1”。在unix中,这意味着将/管道stderr重定向到stdout。然后我们指定>> logfile.log,意思是“向logfile.log追加输出”。当System.out.println()写入stdout时,它将在logfile.log中结束。

但是,如果您的应用程序设置为使用Log4j/commons,那么使用LOG.info("statement");将以配置的'log4j.properties‘日志文件结束。使用此配置,将在logfile.log中结束的唯一语句将是那些系统生成的语句(错误、linux内部系统消息)或任何显式写入stdout (即System.out.println())语句的语句;

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21314700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档