重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
终于搞定了activemq的自动启动,主要还是参考了题主的思路。
成都创新互联-云计算及IDC服务提供商,涵盖公有云、IDC机房租用、达州电信机房、等保安全、私有云建设等企业级互联网基础服务,咨询热线:18980820575
cp 到/etc/init.d目录下的时候,启动会提示找不到路径等等问题,但是在安装目录启动就可以,所以可以通过软连接来实现启动脚本:
ln -s /usr/local/activemq/bin/activemq /etc/init.d/
vi /etc/init.d/activemq
---------------------------------------------
# 第二行插入
# chkconfig: 345 63 37
# description: Auto start ActiveMQ
---------------------------------------------
然后就可以添加开机启动了
chkconfig activemq on
chkconfig --list activemq
也可以正常用服务的命令启动和停止
service activemq start
service activemq status
service activemq stop
留此备查。
screen命令类似于“虚拟桌面”的概念,可以启动一个Linux下的虚拟桌面,在其中可以和普通终端一样执行各种命令。
如果系统中没有screen命令,可以用 apt install screen 来进行安装。
screen命令的基本用法有:
screen 启动一个虚拟桌面
在启动后的虚拟桌面中,按Ctrl+a 然后d(注意这个过程中Ctrl一直按住,也就相当于Ctrl+a 然后Ctrl+d),可以从虚拟桌面返回之前的终端,此时如果虚拟桌面中还有命令或进程在执行,将继续执行,即使退出了这个终端也仍将继续执行。这样就实现了后台执行命令或服务。
如果再想要查看这个虚拟桌面中的情况,执行screen -r即可。
如果有多个screen虚拟桌面在执行中,可以用screen -ls列出所有的桌面,然后按照桌面开始的序号(例如是1234),执行screen -r 1234或screen -x 1234就可以进入该桌面查看,然后再用Ctrl+a,d命令组合退出桌面。
如果要真正退出虚拟桌面(结束该桌面及其中正在运行的进程),在桌面中用exit命令退出即可。
如果要给启动的虚拟桌面起一个名字,可以用类似 screen -S test 这样的命令,这将启动一个名为test的虚拟桌面,以后可以用screen -x test命令来进入查看。
如果想要一条命令用screen启动一个后台进程并且退出(保持后台运行,类似于服务进程),可以用类似下面的命令:
screen -dmS test top
这将启动一个 名为 test 的虚拟桌面,然后在其中执行top命令,然后退出该桌面。
这样,我们再结合Linux中的启动执行方法,就可以制作自己的服务进程了。
下面设置自启动脚本的方法启动仅供参考:
方法一:使用crontab
方法二:
很多时候需要Ubuntu在开机的时候执行一些指定的命令,这里对操作方法进行记录。
在 /etc/init.d/ 中创建自己的开机运行脚本
# 这里的文件名 mystart 可以修改为任何你喜欢的名称,但是必须放在/etc/init.d/目录中
cd /etc/init.d
sudo vim /etc/init.d/mystart.sh
写入需要执行的命令,
#!/bin/bash
### BEGIN INIT INFO
# Provides: tuzixini
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: self define auto start
# Description: self define auto start
### END INIT INFO
# 上面的部分也必须写上,后面放上你需要开机执行的命令,这里是挂载一个硬盘
sudo mount /dev/sdb1 /opt/disk
修改脚本文件权限(将命令中的mystart.sh替换成实际的脚本文件名称)
sudo chmod 755 /etc/init.d/mystart.sh
加入开机启动(将命令中的mystart.sh替换成实际的脚本文件名称)
sudo update-rc.d mystart.sh defaults 90
ok,完成,后面系统启动的时候就会自动运行这段命令。
下面是另一段参考:
第一步、先建立screen name
shellscreen -dmS test
第二步、发送要执行的命令
shellscreen -r test -p 0 -X stuff "top"
第三步、发送一个回车符,让top命令运行起来
shellscreen -r test -p 0 -X stuff $'\n'
参数说明:
-r 恢复/进入一个screen
-p 0 指定第一个(从0开始)window,一个screen里可以有几个window,这里只需要指定第一个,不然会在某些情况下不生效。
-X 执行一个指定的screen支持的command
stuff 是-X的第一个参数,也是screen支持的一个command,意思是粘贴一个string
"top" 是粘贴的string 内容
$'\n' 是粘贴一个回车符进去,以此来执行screen里面的top命令
第一种情况:当centOS 随机启动文件 /etc/rc.local 失效时请按如下修改:
1、echo /etc/rc.local /etc/profile source /etc/profile 注:当执行生效会看到效果(/etc/profile 文件在每个用户登录时会首先检查并执行)
2、reboot注:重新启动检测是否生效
第二种情况:echo /etc/rc.local ~/.bash_profile source /etc/profile。
第三种情况:在 /etc/init.d 目录下增加对应程序启动脚本,然后重启测试,内容如下:chkconfig --add 脚本名(将该脚本注册到系统服务,此时直接输入脚本可以直接运行)。
chkconfig 脚本名 on(将该服务加入随系统开机启动),添加自启动,必须在脚本里面加入chkconfig 启动顺序,才能加入进去。
/etc/rc.local 中部分命令无法执行。
在linux系统中添加随系统启动而自动运行的服务,只需在/etc/rc.local 脚本文件中添加即可,当运行的命令或程序不带路径时,例如:
#!/bin/bash
distccd --user nobody --allow 10.10.98.0/24 --log-file=/var/log/distcc.log --verbose --daemonloadavg -s 10.10.98.20 /dev/null 21
注意,distccd、loadavg命令存放在/usr/local/bin/目录下
在系统执行这些命令时将报错,无法正常执行!
由于在执行rc.local脚本时,PATH环境变量未全部初始化,目录/usr/local/bin/ 需在执行/etc/profile 后才被添加到环境变量PATH中。
解决方法:在 /etc/rc.local 执行 /usr/local/bin/ 目录中的命令需要使用绝对路径。
1、使用runlevel或者who -r查看服务器的运行级别,根据运行级别查看/etc/rc.d/rcX.d/S99local - ../rc.local,所指向的rc.local文件位置是否正确。一般是正确的
默认在/etc/rc.d/rc.local下面,/etc/rc.local只是它的一个symlink。
2、注意在rc.local中的脚本尽量使用绝对路径,脚本要加执行权值,脚本使用的服务和环境变量必须先加载,否则脚本会执行错误而退出。
3、理解linux启动的流程,即init脚本先执行,最后再执行rc.local中的命令。
4、要使用普通用户的环境变量需要在rc.local中使用export var=xxx先导出或者使用source /etc/profile,使环境变量生效才能使用,或者是sleep 10 (以s为单位),等其他的必须服务启动后。
5、在rc.local中的脚本不能执行时,我们可以在脚本中使用set -x打开脚本的调试功能,并且将输出重定向到一个文件中,便于查看出错原因。如/root/echo.sh /root/debug.txt
再执行相关的脚本命令部分。
linux启动app命令:做 Linux 嵌入式开发,经常会遇到要设置自己的应用程序在系统开机的时候自动启动,并且一般情况我们不想安装一些额外的软件去实现此种需求。那么直接根据当前系统自带的默认的一些工具实现用户软件的开机自启动。
本次测验的系统环境为 Ubuntu 16.04 LTS,测试内容均得到正确的验证,如果其他环境出现不一致的现象,请查阅相关的差异。
比如先要实现下面的应用程序的开机自启动(实现的代码最下面给出,有需要的可以查看):
1. 应用程序的名称:app.bin
2. 应用程序的保存路径:/home/ubuntu/app/ 下
3. 应用程序的工作路径:/home/ubuntu/app/ 下
本周我们学习了如何使用Linux编辑脚本程序,当我们编写好脚本的时候,我们需要返回终端界面,使用各种编译器运行程序,但是有时候我们需要在系统开机的时候就自动运行这些程序,下面我们就来看一下在Linux下将脚本设定成开机自动运行的方法。
Linux在启动时,会自动执行/etc/rc.d目录下的初始化程序,因此我们可以把启动任务放到该目录下。假设我们需要运行的脚本文件是test1目录下的test.py。
在系统中找到/etc/rc.local文件,系统会根据该文件来启动所指定的脚本或命令。
我们需要用超级用户登录,并在上述文件最后添加需要运行的脚本文件。
随后cd /home/test1返回test1目录以对其进行更改。
su test1 -c "python /home/test1/test.py" --把要执行的命令作为一个参数传递级su
下面我们就可以实现这个脚本的开机自动运行。
1.以root身份登录linux系统,启动终端,输入命令:vi #47;boot#47;grub#47;grub.conf,文件内容如下:
#boot=#47;dev#47;sdadefault=0 (默认启动哪个系统的设置,此处默认启动linux系统)
timeout=5 (启动系统过程中,等待的时长单位:秒,让用户可手动选择启动系统)。
2.修改后保存文件,重启系统,就可以进入windows系统了,如果想调整GRUB中的系统顺序和添加删除系统名称,修改grub.conf文件中的title就可以了。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Windows是窗户的意思。另外还有微软公司推出的视窗电脑操作系统名为Windows。随着电脑硬件和软件系统的不断升级,微软的Windows操作系统也在不断升级,从16位、32位到64位操作系统。