Joh*_*ins 10 macos bash daemon nohup
我试图在关闭终端后在后台运行脚本.我搜索并搜索并试过nohup
,disown
但似乎都没有工作.当我关闭终端窗口时,我收到了典型的Closing this window will terminate the running processes: watch.
消息.这最终会终止我的后台进程,即使在使用nohup
或时也是如此disown
.可能是什么问题呢?
我的代码简单的两行
cmd="nohup watch -n 1 sudo /etc/block.sh > /dev/null"
$cmd & # blocks automatically
Run Code Online (Sandbox Code Playgroud)
它位于.bash_profile
,因为我希望它在我打开一个新终端时启动.
你可以忽略sudo; 我已经找到了一种在不输入密码的情况下执行sudo命令的方法.
我正在使用Mac OSX.
tri*_*eee 15
启动子shell并nohup
从那里运行命令似乎避免让终端在退出时将其终止.
bash -c "nohup sh -c 'while true; do date; sleep 1; done' &"
Run Code Online (Sandbox Code Playgroud)
不是很优雅,但适合我.
小智 7
这已经得到了回答,但屏幕实用程序看起来似乎是完美的.
man screen
查看屏幕文档.
www.ss64.com/osx/screen.html
查看稍微用户友好的文档.
启动屏幕,显示名称和要运行的脚本:
screen -S GWatch Scripts/gw_watch.sh
This starts a screen session named 'GWatch' and executes gw_watch.sh.
Run Code Online (Sandbox Code Playgroud)启动屏幕会话时,可以选择断开屏幕会话.这将使屏幕在后台保持活动状态.即使在用户注销后它仍将保持活动状态(尽管有权限).
这是一个例子:
将以下内容放入文件中(我经常使用textwrangler和/或nano).
#!/bin/bash
count=0
while [ $count -lt $1 ] ; do
echo "Count: $count of $1. Pausing for five seconds."
sleep 5s
((count++))
done
Run Code Online (Sandbox Code Playgroud)打开两个终端窗口.
screen -ls
.您应该看到有关未找到套接字的消息.screen -S ScreenCheck screencheck.sh 500
.screencheck.sh必须是可执行的.在第二个终端窗口中,您应该看到:
Count: 0 of 500. Pausing for five seconds.
Count: 1 of 500. Pausing for five seconds.
Count: 2 of 500. Pausing for five seconds.
...
Run Code Online (Sandbox Code Playgroud)ctrl-a d
.这是控制+ a,释放两个,d键.[detached]
.screen -ls
.你应该看到类似的东西:
FCH000: ~: screen -ls
There is a screen on:
1593.ScreenCheck (Detached)
1 Socket in /var/folders/pk/l6b5fhkj6mxfpfh8mtgmstg40000gn/T/.screen.
Run Code Online (Sandbox Code Playgroud)使用重新连接到屏幕会话screen -R ScreenCheck
.
你应该看到类似的东西:
Count: 226 of 500. Pausing for five seconds.
Count: 227 of 500. Pausing for five seconds.
Count: 228 of 500. Pausing for five seconds.
Count: 229 of 500. Pausing for five seconds.
...
Run Code Online (Sandbox Code Playgroud)要在注销后查看它是否正在运行,请注销并从另一台计算机ssh到计算机.screen -ls
应该显示与以前相同的屏幕会话.
我希望这有帮助.
归档时间: |
|
查看次数: |
15495 次 |
最近记录: |