Linux终端执行shell脚本,提示权限不够的问题及解决
Linux终端执行shell脚本,提示权限不够
今天在Linux尝试搭建dynamips的工作环境
在执行shell脚本时遇到个小问题
有一个名为start.sh的脚本文件
内容如下:
#!/bin/bash ./dynamips.bin -H 7200 &
在终端执行shell脚本后
出现问题如下:
[root]# ./start.sh bash: ./start.sh: 权限不够
解决方法
是先使用chmod命令对shell脚本赋予权限
再执行
[root]# chmod 777 ./start.sh [root]# ./start.sh
让你的shell在后台运行
pc帮助我们搬砖,总不能傻傻的等在terminal等着跑完吧。万一terminal
让进程后台运行
使用&可以让程序后台运行,比如我
for i in {1..10000}; do echo $i; sleep 1; done &

已经后台执行,我用ctrl+c也无法打断,因为进程已经在后台跑了
jobs查看当前终端后台运行
jobs只查询当前终端的运行程序
输出重定向
由于输入没有重定向,所以还是输出到当前的终端。
重定向输出到文件中。
for i in {1..10000}; do echo $i; sleep 1; done > my.log &这样就不会在控制台输出呗干扰了
让进程不依赖当前shell运行
由于此后台运行的程序依赖当前shell,当我退出的时候,程序也推出了

都是由2666966这个进程带起来的
通过disown命令,把进程用不依赖当前terminal。
disown后,jobs已经是空的

nohub运行, nohup 和 & 的区别
为了避免我每次都到输入disown,如果能让进程启动时,就不跟随系统,可以使用nohub
nohup bash -c 'for i in {1..10000}; do echo $i; sleep 1; done ' > my.log 2>&1 &这样运行的程序默认就是不依赖当前terminal的。
nohub: 应用程序不再和terminal关联,默认不会后台运行&:后台运行
后台运行程序再次接入
在后台运行的程序,有时候想重新接入前台,使用fg(Foreground),可以拉起,但必须jobs是以看到进程的。
stopped程序重新唤醒
jobs可以看到的进程,使用bg重新拉起来
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
centos6.5配置ssh免秘钥登陆执行pssh命令的讲解
今天小编就为大家分享一篇关于centos6.5配置ssh免秘钥登陆执行pssh命令的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-02-02
Linux中出现“No space left on device”错误的排查与解决方法
这篇文章主要给大家介绍了关于在Linux中出现"No space left on device"错误的排查与解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-09-09
详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势
这篇文章主要介绍了详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-12-12


最新评论