我总是以 root 身份运行特定的应用程序,因为它需要更多权限。我通常只是 sudo 。我想创建一个类似于以下内容的别名:
alias myCmd='sudo nohup /path/to/binary > /dev/null 2>&1 &'
当 sudo 提示输入密码但实际上什么也不会发生时,就会出现问题。如何做呢?
答案1
使用 shell 脚本而不是别名。
在~/.bashrc中:
export PATH="$PATH":~/bin
你的脚本在 ~/bin/runthat 中:
#!/bin/bash
sudo nohup /path/to/binary > /dev/null 2>&1 &
然后运行它,只需这样做:
$ runthat
或者,如果您跳过了 PATH 步骤,则按以下方式运行:
$ ~/bin/runthat
如果这是系统范围(所有用户)的脚本而不仅仅是您的脚本,则将其放入 /usr/local/bin 中。
或者你也可以使用一个函数。例如。在~/.bashrc中:
runthat() {
sudo nohup /path/to/binary > /dev/null 2>&1 &
}
另外仅供参考,不是问题的直接答案,另一种选择是将其放入 sudoers 文件中:
sudo visudo
(your editor pops up here)
username ALL=NOPASSWD: /path/to/binary
现在它根本不会要求输入密码。 (这意味着安全性较低......也许某些安全漏洞现在也会让恶意软件运行此应用程序......所以请确保您接受这个小风险)
答案2
将其添加到 ~/.bashrc 的底部
alias sudo="sudo " # space after sudo