
在服务器上,我通常用的,Jar包启动命令时这样的
1. 指定配置环境
这样启动时会去加载Jar包中Resource目录下application-dev.yml文件。需要注意的同在IDE中一样。
2. 指定配置文件
若配置文件在Jar包外面,-Dspring.config.location=后面不用classpath,直接使用配置文件的相对或绝对路径就行:-Dspring.config.location=app-dev.yml。
3. 命令分析
启动命令中,有几部分解释一下:
3.1 nohup和&。
这2个都是要后台启动的命令,在xshell等ssh工具中,
若命令中只有nohup这一个:
- 使用
Ctrl + C快捷键,程序会关闭 - 关闭
session即断开xshell连接,程序不会关闭
若命令中只有&这一个:
- 使用
Ctrl + C快捷键,程序不会关闭 - 关闭
session即断开xshell连接,程序会关闭
所以,经常nohup和&配合使用来启动程序nohup ./test &
3.2 >/dev/null
这个是设置输出文件的。也可以是>>/dev/null
- 其中
>或者>>表示输出重定向的意思。>会覆盖目标的原有内容,当文件存在时,会先清空,然后把内容写入该文件,否则直接创建文件。>>是将输出内容追加到目标文件中。如果文件不存在,就创建文件,如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。 - 这里使用
/dev/null是因为在项目xml文件中配置了日志,所以不想使用linux中输出的日志,就指向了null文件,这样就不会生成linux带的日志了,只用我们在配置中指定的那个。若想要这个日志,指定位置和文件名就行:>/logs/nohup-test.out。 - 需要注意,文件不存在时,使用
>和>>是一样的,会新建文件。
3.3 2>&1
首先要知道,bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。
2>&1也就表示将错误重定向到标准输出上,即在日志中能看到错误信息。&表示整个过程在后台进行。
