以下简单脚本,用于列出ssh-agent中的键:
list_keys.sh:
#!/bin/bash
ssh-add -l
list_keys.py:
if __name__ == '__main__':
"""
Creates log
"""
...
print("Start")
print subprocess.check_output(["list_keys.sh"])
直接从终端调用时效果很好。
$python list_keys.py
日志按预期显示:
Start
2048 SHA256:+gkk***************************nQ .ssh/my_key (RSA)
但是当我尝试将其作为服务使用时,它会失败。
Start
Traceback (most recent call last):
File "list_keys.py", line 43, in <module>
print subprocess.check_output(["list_keys.sh"])
File "/usr/lib64/python2.7/subprocess.py", line 575, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess
.
CalledProcessError
:
Command '['list_keys.sh']' returned non-zero exit status 2
服务配置:
list_keys.service:
[Unit]
Description=List Keys Service
After=multi-user.target
[email protected]
[Service]
Type=simple
ExecStart=/usr/bin/python list_keys.py
StandardInput=tty-force
[Install]
WantedBy=multi-user.target
我正在使用Centos7。是否有任何线索可以将list_keys.py用作服务?
您很可能忘记了shell文件上的执行位,可以通过以下方式轻松修复:
chmod +x list_keys.sh