今天公司的项目中用到需要在Java程序中启动linux中其他程序并在后台运行的功能,以前没用到过这种的,经过一一系列百度,看到最多的就是使用nohup &命令的,但是这种需要方式需要两次回车,所以在linux系统中直接启动还好,在Java中运行就有些麻烦了,于是经过各种查资料,找到一种service启动的方式
首先需要创建一个程序名.service(aaaaaaaa.service)(在该文中我的可执行文件名称为aaaaaaaa)的文件,在文件中输入以下语句aaaaaaaa为文件名称。自行替换即可;ExecStart=绝对路径,同时需要把这个文件(aaaaaaaa.service)放在/etc/systemd/system/目录下,这时候只需要执行(sudo service aaaaaaaa start)
如果需要查看执行后的输出内容可以执行(sudo service vbar status)
sudo可以不用,因为我的不是root用户所以加上这个方便一点
/etc/systemd/system/
[Unit]
Description=aaaaaaaa
After=syslog.target
[Service]
ExecStart=/usr/bin/aaaaaaaa
[Install]
WantedBy=multi-user.target
#启动程序:
sudo service aaaaaaaaaa start
#查看程序运行的输出内容:
sudo service aaaaaaaaaa status
害怕上边说的不清楚,再加个图片。
至于如何在Java中执行Linux命令可以翻翻我的其他博客,应该可以翻到