1 koebehshian OP  |
![]() | 2 ikw 2018-01-24 11:14:47 +08:00 ![]() 你试试 kill 了它,看是不是会变成 defunc... |
3 koebehshian OP @zwpaper 你说 kill 哪个进程,sleep 1 的父进程爷进程都在的 |
![]() | 4 Beebird 2018-01-24 11:28:10 +08:00 ![]() 楼主的意思是 sleep 1 这个进程会长时间运行,无法结束? 单看这一张截图,没有任何异常。 |
5 koebehshian OP @Beebird 是啊,sleep 1 这个进程,按理说 1 秒后就自杀了,为什么还在吗,我在 resetgpio25.sh 脚本中调用的,等它 sleep 完我还要重启应用服务,结果它这卡住了,导致我的服务都没启动 |
![]() | 6 shn7798 2018-01-24 11:50:08 +08:00 可能是当前目录 IO busy 导致的, 试试(cd /; sleep 1) |
![]() | 7 ikw 2018-01-24 11:54:09 +08:00 @koebehshian #3 #3 kill sleep 1 这个,14527 |
![]() | 8 pkookp8 2018-01-24 11:54:21 +08:00 via Android ![]() 父进程和 sleep 的进程号差那么多,是不是死循环 sleep 了 |
9 koebehshian OP @pkookp8 没有啊,我复制出来前台运行可以的 |
10 koebehshian OP @shn7798 这和目录有什么关系,sleep 没有调用任何当前目录的资源 |
![]() | 11 Beebird 2018-01-24 13:00:29 +08:00 把 sleep 1 注释掉试试看? @koebehshian |
12 koebehshian OP @pkookp8 刚发现 sleep1 的进程 id 在变化,看来确实是死循环了,但不知道为什么死循环,代码我复制出来运行可以的,我的死循环是用 test -e 检测 /dev 目录下的设备。 |
13 weyou 2018-01-24 15:08:55 +08:00 ! test -e /dev/ttyUSB0 是什么鬼? !是 test 的参数啊 试试 while test ! -e /dev/ttyUSB0 |
![]() | 14 Beebird 2018-01-24 16:32:30 +08:00 是类似这样的吗?@koebehshian #!/bin/bash echo "starting" while [ ! -e /dev/ttyUSB0]; do echo "not exsiting" done sleep 1 echo "finishing" 执行的 shell 是 bash 还是其他 shell? |
15 koebehshian OP @weyou 我试过两种都行 |
16 koebehshian OP @Beebird 不是,我 sleep1 会在循环里面,有两个循环,我先通过 gpio 把设备关了,然后一个死循环,等它没了;然后再开,再一个死循环等它出现。 我原来以为是后面那个死循环,其实是前面那个死循环。 语法问题就简单多了,我手动运行过没语法问题. |