我有一个简单的申请。
为了本地调试目的,我想在ghci内的端口80上运行它。通常,我会在编译的二进制文件上运行sudo ./main -p 80来实现这一点,但是在ghci中,我被拒绝了一个权限。
*Main> :main -p 80
Initializing app @ /
Initializing heist @ /heist
...loaded 35 templates from /Users/dmj/blah/templates
Initializing CookieSession @ /sess
Listening on http://0.0.0.0:80/
Error on startup:
bind: permission denied (Permission denied)
Shutting down...它在非特权端口上工作。
*Main> :main -p 8000
Initializing app @ /
Initializing heist @ /heist
...loaded 35 templates from /Users/dmj/blah
Initializing CookieSession @ /sess
Initializing db @ /auth
Initializing acid-state @ /acid
Listening on http://0.0.0.0:8000/发布于 2014-01-02 15:44:14
另一种方式见此帖子:Is there a way for non-root processes to bind to "privileged" ports on Linux?
sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ncat只需将“/usr/bin/ncat”替换为您通往ghci的完整路径,它就会起作用。
(我相信你曾多次被人唠叨,说做任何长时间的工作都是多么糟糕.而且,这是一个Linux特定的解决方案,所以如果您正在使用Mac或其他*nix,这对您是行不通的)。
https://stackoverflow.com/questions/20883154
复制相似问题