- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一些通过 cron 运行的 python 脚本,当使用绝对路径调用脚本时,它们不再正确退出。它们将挂起,直到进程终止。我相信这是在我将/var 和/home 移动到另一个分区后发生的。
我检查了环境变量,没有发现任何明显的错误,这在使用 cron 或 bash 子 shell 运行时会发生,但在直接运行时不会发生。
如果我将它作为子 shell 运行,它会一直挂起,直到我杀死它 (ctrl-c),然后给我输出。
[wotstats@rock test]$ echo 'assert 0==1, "fails"' > test.py
[wotstats@rock test]$ /bin/bash -c "/usr/bin/python /var/home/wotstats/test/test.py"
^CTraceback (most recent call last):
File "/var/home/wotstats/test/test.py", line 1, in <module>
assert 0==1, "fails"
AssertionError: fails
如果我不调用脚本,它会按预期终止而不会挂起:
[wotstats@rock test]$ /bin/bash -c "echo 'assert 0==1, \"fails\"' | /usr/bin/python"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError: fails
当发生异常时,我确实会立即收到日志错误:
Dec 9 13:33:44 rock abrt: detected unhandled Python exception in '/var/home/wotstats/test/test.py'
我根据输入运行了一些测试,发现即使调用/test.py 并以 root 运行时也会出现此问题。我也尝试了/root 和/usr,效果相同。
Similar or same question在这里被询问并通过重启解决;如果可以的话,我宁愿弄清楚并避免重启。
最佳答案
好的,明白了。感谢您的帮助。
我运行了一个 strace,发现它卡在下面:
socket(PF_FILE, SOCK_STREAM, 0) = 4
connect(4, {sa_family=AF_FILE, path="/var/run/abrt/abrt.socket"}, 27^C
<unfinished ...>
这导致了 Bugzilla这表明 SELinux 是问题所在。我已经将 SELinux 更改为宽容模式(我把它搞砸了/var),但没有重新启动 abrtd。
重新启动 abrtd
服务解决了问题。
关于从 cron 或 subshell 使用绝对路径调用时,Python 不会退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13790475/
我需要区分两种情况:( …subshell… )对比$( …command substitution… ) 我已经有了以下函数,它区分在命令替换或子 shell 中运行和直接在脚本中运行。 #!/bi
据我所知,有两种方法可以在 bash 函数中创建局部变量:创建子 shell 或将每个变量声明为局部变量。 例如: # using local function foo { local count
当我运行这个命令 set -e; echo $(echo "$-"); 我得到 himBH作为输出。我期待着这封信 e被包含在输出中。这是怎么回事? 我在 Ubuntu 16.04.1 LTS 上 G
根据 run bash command in new shell and stay in new shell after this command executes ,如何运行命令: bash --r
我是一名优秀的程序员,十分优秀!