热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在linux里面的crontab运行一个java程序,java里面system.out.print输出到哪里去了

在linux下面,我有个java程序要定时运行,就写了一个shell来运行,手工运行没有问题,可是将shell放到crontab里面执行的时候就没有达到预期的效果了。在java里面我用System.o
在linux下面,我有个java程序要定时运行,就写了一个shell来运行,手工运行没有问题,可是将shell放到crontab里面执行的时候就没有达到预期的效果了。在java里面我用System.out.println打印调试,可是没有看到任何输出,不知道输出到哪里去了。如果手工运行可以看到调试数据的。
很是郁闷,可能跟环境有关,可是配置检查环境没有发现问题。

8 个解决方案

#1


up

#2


cron运行的log一般都是在/var/spool/cron下面的。
但是syste.out.print一般你是看不到的,因为你是后台运行的。

一般cron无法运行无非就是下面几个问题
1,用户无权限
2,class文件的路径不对,或者classpath中设置的相关类找不到

你可以设置好时间之后去运行cron,然后看看log下面的东西是不是真的运行了

比如crontab
11 * * * * * * test.sh

到了11分之后你去看看log
 

#3


帮顶

#4


在linux下面,我有个java程序要定时运行,就写了一个shell来运行,手工运行没有问题,可是将shell放到crontab里面执行的时候就没有达到预期的效果了。
crontab执行程序确实和你登录用户的环境有些差异。
一般用户登录到linux后,
ls -al
会看到一个.bash_profile或者.profile文件

你最好写一个简单的脚本,如:startJava.sh
内容为
cd $HOME
. ./bash_profile
java -jar xxx #启动你的java程序


在java里面我用System.out.println打印调试,可是没有看到任何输出,不知道输出到哪里去了。如果手工运行可以看到调试数据的。 
很是郁闷,可能跟环境有关,可是配置检查环境没有发现问题。
crontab下如果正确执行了程序,system.out.println的输出会通过linux mail的方式发给这个用户,
在你下次登录的时候,你会发现系统提示:you have new mails,
然后你打:mail,就可以看到一系列新邮件的列表,直接输入邮件的编号就可以查看内容了。

另外,你也可以使用nohup方式来调度程序,这样,系统会将system.out.println的输出,重定向到一个nohup.out文件中:
nohup java -jar xxx

#5


帮顶……

#6


学习,呵呵!高人

#7


在crontab中定时执行的命令不应该有控制台输出(你可以用输出重定向来达到这个目的),因为它根本不打开控制台。如果有控制台输出会转成向你发一封邮件,邮件的内容就是这次执行命令时产生的控制台输出。

#8


mark

推荐阅读
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 服务器上的nginx使用logrotate来分割日志,设置为每天分割。但是logrotate似乎没有工作,日志并没有分割。服务器是CentOS6。为了找到原因 ... [详细]
  • 【场景】:需要定期运行Hadoop的MapReduce【解决办法】:编写一个运行MapReduce的Shell脚本。然后使用crontab配置定时任务。【Shell脚本】 ... [详细]
  • 前言crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • #!binbash########################################################################## File Name : rsync_nobody.sh#  ... [详细]
  • 用.sh文件来完成任务,但现在有个项目直接用url就行。一般系统不会有crontabShell#安装crontab:yuminstallcronta ... [详细]
  • Linux下怎么使用crontab命令
    本篇内容主要讲解“Linux下怎么使用crontab命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Li ... [详细]
  •   crontab命令用于设置周期性被执行的指令,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执 ... [详细]
  • 1crond服务未启动crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。如果停止了就无法执行任何定时任务了,解决的方法是打开它 ... [详细]
  • 今天遇到一个问题:一个python脚本命令行运行时很正常,放到crontab中就无法工作,日志也没有记录,找了半天,终于发现问题所在。在脚本最上方,程序如下:#!usr ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • Linux系统中高效解决高Buff/Cache占用问题
    本文详细探讨了在Linux系统中遇到的高Buff/Cache占用问题及其解决方案,提供了手动清除与定时任务自动化处理的方法。 ... [详细]
  • 第一种,通过mancrontab查看crontab的帮助手册第二种列出几个简单示例Crontab命令的格式为:crontab–l|-r|-e|-i[username]-l显示用户的 ... [详细]
  • 记录一次ali云线上环境jenkins被攻击挖矿的处理过程
    周六告警一个接一个,感觉极不寻常netstat-anpd执行结果如下久违的中毒感觉,查看一下各用户下的crontabcatetcpasswd|cut-f1-d:|xargs-I{} ... [详细]
author-avatar
胡慧君孟勋欣怡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有