nohup后台gbk编码错误 2016.04.29回顾

本文分享了作者在数据挖掘与分析领域的学习体验,通过参加培训并解决编程问题,如理解logistic回归结果、修复Python脚本中的编码错误。作者强调了深入实践和关注商业应用的重要性,并探讨了解决复杂编程问题的方法。

1、上午浪费时间去听了个培训,老板叫去的,没办法,然而对我这方面来说并没有什么实质性的帮助

2、看了一下别人做的数据挖掘、数据分析的案例,我觉得那些才是nb有干货的东西,我未来也是想做一些很有干货,和商业紧密联系的东西!

3、下午又想了logistic最后结果值的问题,想了1个来小时吧

4、最后的时间,我发现我程序的bug,nohup挂后台,会报错,我发现是python还有一个ioencoding的东西,因为的编码是GBK,所以我直接加入一个环境变量解决了问题

export PYTHONIOENCODING=gbk,解决了问题,参考http://stackoverflow.com/questions/5626960/python-print-statement-with-utf-8-and-nohup,至于具体的原理,我还需要去

研究下


<think>首先,用户的问题是:“我想查找使用nohup查看tomcat ./start.sh启动日志的方法”。用户提到了nohup和tomcat的启动脚本start.sh(注意,用户说“start.sh”,但在引用中通常是startup.sh,可能是笔误)。 从用户提供的引用中: - 引用[1]提到启动tomcat的三种方式,其中方式二使用nohup:`nohup ./startup.sh &`,并说明这种方式作为服务启动。 - 引用[2]讨论startup.sh脚本,指出它实际上调用catalina.sh,并建议可以直接使用`./catalina.sh start`等命令。 - 引用[3]是关于catalina.sh脚本的分析。 用户想查看使用nohup启动时的日志。通常,使用nohup启动时,输出默认重定向到nohup.out文件,除非指定其他输出文件。 在引用[1]中,方式二使用`nohup ./startup.sh &`,但没有指定日志文件,所以输出会写入nohup.out。用户可能想查看这个日志或指定日志文件。 用户说“./start.sh”,但tomcat的标准脚本是startup.sh。可能用户误写,或者某些环境中脚本名为start.sh。我需要基于标准tomcat响应。 关键点: - 当使用`nohup ./startup.sh &`时,输出(包括启动日志)会被重定向到当前目录下的nohup.out文件。 - 如果想指定日志文件,可以重定向输出,例如:`nohup ./startup.sh > custom.log 2>&1 &`,这将标准输出和错误都重定向到custom.log。 另外,引用[2]提到可以直接使用catalina.sh,所以如果用户想查看日志,也可以考虑catalina.sh的输出。 tomcat的日志通常位于logs目录下,如catalina.out,但使用nohup启动时,如果没有重定向,输出到nohup.out,而不是catalina.out。 在标准tomcat配置中,catalina.sh脚本会将输出重定向到logs/catalina.out,但当我们使用nohup时,它可能会覆盖这个行为。 引用[3]提到catalina.sh脚本,它处理启动过程。在catalina.sh中,当使用"start"参数时,它会将输出重定向到CATALINA_OUT变量指定的文件,默认为$CATALINA_BASE/logs/catalina.out。 但是,当我们使用nohup启动startup.sh时,startup.sh会调用catalina.sh,但nohup会捕获输出并写入nohup.out,除非在nohup命令中重定向。 所以,用户可能的情况: 1. 使用`nohup ./startup.sh &`启动,日志在nohup.out。 2. 想实时查看日志或指定日志文件。 回答应该: - 解释使用nohup时的默认日志位置。 - 提供查看日志的方法,如`tail -f nohup.out`。 - 建议如何指定自定义日志文件。 - 提到tomcat的标准日志位置,如logs/catalina.out,并解释关系。 用户说“使用nohup查看tomcat ./start.sh启动日志”,所以重点是使用nohup启动时的日志查看。 步骤: 1. 使用nohup启动:`nohup ./startup.sh &`(假设脚本是startup.sh,如果是start.sh则调整)。 2. 日志默认在nohup.out,使用`tail -f nohup.out`实时查看。 3. 或者指定日志文件:`nohup ./startup.sh > custom.log 2>&1 &`,然后`tail -f custom.log`。 4. 注意,tomcat自身的日志还会写入logs目录下的文件,如catalina.out,但nohup捕获的是控制台输出。 在引用[1]中,方式三使用`./catalina.sh run`,它会动态输出到控制台,但用户指定了nohup。 生成相关问题: 1. 如何实时监控tomcat启动日志? 2. 如何将tomcat日志输出到自定义文件? 3. Tomcat的catalina.out和nohup.out有什么区别? 回答结构: - 先澄清脚本名称(startup.sh vs start.sh)。 - 解释使用nohup启动的日志位置。 - 提供查看日志的命令。 - 可选地,建议最佳实践,如直接使用catalina.sh或配置日志。 由于引用[2]提到可以直接使用catalina.sh,我也可以提到这一点。 </think> ### 使用nohup查看Tomcat启动日志的方法 当使用`nohup`启动Tomcat(通常通过`startup.sh`脚本)时,所有输出(包括启动日志)默认会重定向到当前目录下的`nohup.out`文件。以下是具体操作步骤和说明(假设Tomcat主目录为`/usr/local/tomcat`,您需根据实际路径调整): #### 1. **启动Tomcat并捕获日志** - **使用nohup启动**: 进入Tomcat的`bin`目录,执行以下命令: ```bash cd /usr/local/tomcat/bin nohup ./startup.sh & # 默认日志输出到当前目录的nohup.out ``` 这里: - `nohup` 确保进程在后台运行且忽略挂断信号(如SSH断开后仍持续运行)。 - `&` 将进程放入后台。 - 启动日志自动写入当前目录的`nohup.out`文件[^1]。 - **指定自定义日志文件(推荐)**: 为避免日志混乱,可将输出重定向到自定义文件(如`custom.log`): ```bash nohup ./startup.sh > /path/to/custom.log 2>&1 & ``` 解释: - `> /path/to/custom.log` 将标准输出重定向到自定义文件。 - `2>&1` 将标准错误输出合并到同一文件。 - 示例:`nohup ./startup.sh > /var/log/tomcat_start.log 2>&1 &`[^1]。 #### 2. **查看启动日志** - **实时监控日志**: 使用`tail -f`命令动态跟踪日志输出: ```bash tail -f nohup.out # 查看默认日志 或 tail -f /path/to/custom.log # 查看自定义日志 ``` 按 `Ctrl+C` 退出实时监控。 - **检查历史日志**: 若需查看完整日志,直接用文本工具打开: ```bash less nohup.out # 分页查看 或 cat /path/to/custom.log # 一次性输出全部内容 ``` #### 3. **注意事项** - **脚本名称差异**: Tomcat标准启动脚本为`startup.sh`(非`start.sh`),但部分环境可能有自定义脚本名。若您的脚本名为`start.sh`,替换命令中的`startup.sh`即可。 - **日志位置冲突**: Tomcat自身日志(如`logs/catalina.out`)记录应用运行时输出,而`nohup.out`仅捕获启动时的控制台输出。两者可能内容重叠,但`nohup.out`更聚焦启动过程[^2][^3]。 - **最佳实践**: 引用[2]建议直接使用`catalina.sh`管理Tomcat(如 `./catalina.sh start`),其日志自动重定向到`logs/catalina.out`,无需`nohup`[^2]。若需后台运行,仍可结合nohup: ```bash nohup ./catalina.sh start > /path/to/custom.log 2>&1 & ``` #### 4. **日志路径总结** | 启动方式 | 默认日志路径 | 查看命令示例 | |-------------------|--------------------------|--------------------------| | `nohup ./startup.sh &` | 当前目录的`nohup.out` | `tail -f nohup.out` | | 自定义输出 | 指定路径(如`custom.log`) | `tail -f /path/to/custom.log` | | `./catalina.sh run` | `logs/catalina.out` | `tail -f logs/catalina.out` [^3] | 通过以上方法,您可有效捕获并查看Tomcat启动日志。若日志未生成,请检查文件权限(如确保`tomcat`用户有写入权限)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值