孟加拉国语言(孟加拉国语言翻译软件)
6762023-11-24
各位老铁们,大家好,今天由我来为大家分享Go语言在Linux中后台运行有哪些问题,以及为什么不建议用nohup的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
本文目录
在Windows操作系统中,`nohup`命令不可用,但您可以使用其他方式来在后台运行Go语言程序。以下是一种常用的方法:
1.首先,确保您已经安装了Go语言的开发环境。您可以从Go官方网站(https://golang.org/)下载并安装Go。
2.编写您的Go程序,并将其保存为一个`.go`文件。
3.打开命令提示符(CommandPrompt)或PowerShell,并导航到保存Go程序的目录。
4.使用以下命令来编译和构建Go程序:
```
gobuildyour_program.go
```
这将生成一个可执行文件,文件名通常与Go程序的包名相同。
5.使用以下命令来后台运行您的Go程序:
```
start/Byour_program.exe
```
请将`your_program.exe`替换为您实际生成的可执行文件名。
此时,您的Go程序将在后台运行,命令提示符或PowerShell窗口可以继续使用。
请注意,这种方法只会将Go程序以后台进程方式运行,如果您希望对程序的输出进行重定向或者管理程序的运行状态,可以使用其他工具或技术,如使用Windows服务、使用任务计划程序等。
另外,如果您需要更高级的后台任务管理功能,可以考虑使用第三方工具,如supervisor、pm2等。这些工具可以提供更多的管理和监控功能,使您能够更方便地管理后台程序的运行。
Go运行本身没什么问题,不过需要注意几点:
1.打包问题:一定要在对应系统执行gobuildxxx.go编译
2.部署:建议使用nohup,当然,也可以使用supervisored
3.包依赖管理上:可以手动管理,写一个shell文件,安装的时候执行一下,也可以使用govendor
目前,在服务器上,基本没遇到什么问题,部署上算是比较简单的了
SpringBoot项目可以生成两种部署包:一种是jar包,一种是War包
jar包(官方推荐)
jar包方式启动,也就是使用springboot内置的tomcat运行。服务器上面只要你配置了jdk1.8及以上,就ok。不需要外置tomcat
1.打成jar包
2.将jar包放到任意目录,执行下面的命令
$nohupjava-jartest.jar>temp.txt&
//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建。进程会在后台运行。
war包
传统的部署方式:将项目打成war包,放入tomcat的webapps目录下面,启动tomcat,即可访问。
对于打包,到项目根路径:执行mvncleanpackage就OK
在linux上执行python程序的方法:
1.第一种方法是直接用unhup命令来让程序在后台运行,命令格式如下:
unhuppython文件名.py(>***.log)&
在这个命令中,python指定我们要执行的文件为python文件,后面的文件名.py即是我们要执行的文件。括号内容表示可以将平时输出到控制台中的内容重定向到*.log这个文件中,这个是可选的,如果没有这个,则会默认输出到nohup.out文件中。括号后面你的&表示后台运行。
2.第二种方法是写一个脚本,然后把脚本提交给服务器,让服务器在后台运行脚本里面的语句。假设我们定义了一个脚本start.sh,其内容如下:
#!/bin/bash
cd想要运行文件的路径名
python-u***.py
上述脚本中,#!/bin/bash是指此脚本使用/bin/bash来解释执行下面的语句,其中cd是表示将当前目录跳到所要运行文件所在目录,然后python-u***.py则表示运行***python文件,当写完该脚本后,我们就可以使用下面的这条命令来执行该脚本从而让程序在后台运行:
./start.sh>result.log&
在这里./start.sh表示运行当前目录下的脚本start.sh,>result.log表示把原来输出到控制台的东西都输出到result.log文件中,&表示在后台运行
我们可以看到,我们的脚本start.sh和python程序都已经在后台成功运行,然后通过catresult.log|more就可以来查看原来输出到控制台的信息
注:要想执行python文件中的某个函数,一定要记得除了要定义该函数外,还要在该文件中调用该函数
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!