用Java编写了一个程序(可执行的jar),需要在Linux中启动并持续运行1.1、直接执行程序
直接执行程序后,在程序执行期间,无法在当前会话中再执行其他操作1.2、直接执行程序后中断
直接执行程序后,按Ctrl+C中断;这时虽然可以在当前会话中执行其他操作,但是程序也结束运行了1.3、直接执行程序后开启新会话
直接执行程序后,在新会话中不仅可以执行其他操作,而且旧会话中的程序也还在持续运行
但是,把旧会话关闭后,程序也随之结束了2、解决方式
注意:
在执行程序的命令后使用 > test.log 的作用,是为了将程序的输出信息从标准输出重定向到(test.log)文件中
单独使用 & , 只能实现在程序的执行期间,还能在当前会话中执行其他操作;但关闭当前会话,程序依然会自动结束
注意:
单独使用 nohup ,只能实现关闭当前会话后,程序依然能继续运行,但无法在当前会话中再执行其他操作;
强行使用Ctrl+C中断的话,这时虽然可以在当前会话中执行其他操作,但是程序也结束运行了
nohup 会默认将程序的输出信息从标准输出重定向到当前目录的nohup.out文件中;
因此可以不用额外使用 > test.log 将程序的输出信息从标准输出重定向到(test.log)文件中
单独使用 & , 只能实现在程序的执行期间,还能在当前会话中执行其他操作;但关闭当前会话,程序依然会自动结束
单独使用 nohup ,只能实现关闭当前会话后,程序依然能继续运行,但无法在当前会话中再执行其他操作
结合使用 nohup 和 & ,能同时实现:在程序的执行期间,还能在当前会话中执行其他操作;关闭当前会话后,程序依然能继续运行
结合使用 nohup 和 & 后,无论是按回车,还是按Ctrl+C,或者是关闭当前会话,都不影响程序的运行
当结合使用 nohup 和 & 执行程序后,要么程序执行完毕后自动结束(如果程序有结束条件),要么手动结束该进程
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |