Jump to content

Linux Setup


Recommended Posts

Posted

 

I don't this that is the Mono embedded

[smitopher@localhost mb3MonoEmbed]$ ls
Alchemy.dll                  MediaBrowser.Common.Implementations.dll      MediaBrowser.Providers.dll.mdb               NLog.dll                      sqlite3
ApiClient.js                 MediaBrowser.Common.Implementations.dll.mdb  MediaBrowser.Server.Implementations.dll      ServiceStack.Api.Swagger.dll  sqlite3.dll
BDInfo.dll                   MediaBrowser.Controller.dll                  MediaBrowser.Server.Implementations.dll.mdb  ServiceStack.Client.dll       swagger-ui
dashboard-ui                 MediaBrowser.Controller.dll.mdb              MediaBrowser.Server.Mono.exe                 ServiceStack.Common.dll       System.Data.SQLite.dll
DvdLib.dll                   MediaBrowser.Dlna.dll                        MediaBrowser.Server.Mono.exe.config          ServiceStack.dll              System.Data.SQLite.dll.config
MediaBrowser.Api.dll         MediaBrowser.IsoMounting.Linux.dll           MediaBrowser.WebDashboard.dll                ServiceStack.Interfaces.dll   System.Data.SQLite.Linq.dll
MediaBrowser.Api.dll.mdb     MediaBrowser.Model.dll                       MediaBrowser.WebDashboard.dll.mdb            ServiceStack.Text.dll
MediaBrowser.Common.dll      MediaBrowser.Model.dll.mdb                   Mono.Nat.dll                                 SharpCompress.dll
MediaBrowser.Common.dll.mdb  MediaBrowser.Providers.dll                   MoreLinq.dll                                 SimpleInjector.dll
[smitopher@localhost mb3MonoEmbed]$ . MediaBrowser.Server.Mono.exe
-bash: .: MediaBrowser.Server.Mono.exe: cannot execute binary file
[smitopher@localhost mb3MonoEmbed]$ 

 

yup, i think you're right. i'll look into it.

Posted

Are there any extra dependencies that need to be installed along with this? 

 

It be the same as the regular version except without the need to build/install mono. So you would still need to do libgdi

Posted

is the data directory enough as a starting point?

I'm setting up a test unraid server (hopefully) so i can test this out.  Are you able to get teh data directory as a command line working since it seems the easier of the items?  

 

From what I've been reading, I think you have made MB3 able to work as a service already in Windows, and mono-service may be able to make that linux compatible as well without many if any change at all to the code.

 

While I'm at it, i will test it with the new mono version 3.2.7, are the links on page 1 poniting to the latest mb3 linux files still?

Posted

The linux and osx versions do not yet have command line args. Windows has one and that's to start as a service or not.

 

If you know anyone who might be able to help contribute to add those things it would be fantastic.

Hmm, I don't have any expertise in that (with C specifically) but I don't know if I can get this to support UnRaid without the ability to make those changes by command line.

Posted

Thanks. Yea I can add data path to the command line args. The links are the most current, although the mkbundle is not currently mkbundled at all and i'm looking into that. so just do the regular download. Thanks for testing that.

Posted

is the data directory enough as a starting point?

Posted

is the data directory enough as a starting point?

Actually running as a daemon is more important as the UnRaid interface needs that to start and stop the application reliable (by verifying if the PID exists or not) and the data directory is required to keep the configuration and other items persistent after a reboot.  Setting port number can always be added after and the force update option isn't 100% needed since the in app updating system could just be scheduled to run on startup or something.

 

I'll have a look to see if I can find anyhting regarding coding the app to run as a daemon, im not sure if its a simple thing or not.

Posted

Well the mono version of the server has no presentation elements aside from attempting to pop open the web browser to run the startup wizard. So I would imagine half the battle is done already.

Posted

Well the mono version of the server has no presentation elements aside from attempting to pop open the web browser to run the startup wizard. So I would imagine half the battle is done already.

Yeah, i'm lokoing at somethign called mono-service, which actually might make this really quite easy.

Posted (edited)

Hi Luke,  does mb3 have (or is it possible to add) command line options?  I'm not sure if its something that can be implemented easily but then we could have it set port and data directory on startup making it easier to initiate for the linux install, and possibly beneficial for the windows install.  I would recommend: 

- Data directory 

- port number

- force update on startup (with self restart)

- start as daemon

- PID location for PID to run

Edited by PhAzE
Posted

The linux and osx versions do not yet have command line args. Windows has one and that's to start as a service or not.

 

If you know anyone who might be able to help contribute to add those things it would be fantastic.

Posted

can someone take a moment to test that building mono is no longer necessary using mono 3.2.7? it would be nice to be able to remove that from the setup procedure.

smitopher
Posted (edited)

I'm setting up a test unraid server (hopefully) so i can test this out.  Are you able to get teh data directory as a command line working since it seems the easier of the items?  

 

From what I've been reading, I think you have made MB3 able to work as a service already in Windows, and mono-service may be able to make that linux compatible as well without many if any change at all to the code.

 

While I'm at it, i will test it with the new mono version 3.2.7, are the links on page 1 poniting to the latest mb3 linux files still?

Have you seen the unRaid 6.0 beta?  It uses XEN Hypervisor so that unRaid is the dom0 vm.  You can then run things like MB3 Server in a separate VM.  That would solve your persistence issues.  I still would want a Linux Mono VM to run MB3 as that would be MUCH lighter weight than a windows VM

 

To optimize things... the MB3 vm could mount the unRaid shares in a virtual internal network to keep that traffic off your physical external network.

Edited by smitopher
Posted (edited)

I'm not a .NET developer, rather I'm a Java developer :ph34r:

 

In my googling, this seems to be relevant. http://stackoverflow.com/questions/1221110/windows-like-services-development-in-linux-using-mono/1234761  

Ya i was looking at that before if i can overcome the mountains of issues i've hit, i'll look into that further.

 

I spent hours getting unraid to work under a VM, but since the OS is stripped down, i can't compile mono. I found an older version TXZ file but its version 2.10.  Getting the latest version from git just doesn't compile without a billion dependencies and their dependencies and so on.  No exactly sure how to get mono 3.2.7 on there or even to patch the older version.

 

There is no apt-get or yum in this OS so its all manual resolutions.

Edited by PhAzE
smitopher
Posted

Ya i was looking at that before if i can overcome the mountains of issues i've hit, i'll look into that further.

 

I spent hours getting unraid to work under a VM, but since the OS is stripped down, i can't compile mono. I found an older version TXZ file but its version 2.10.  Getting the latest version from git just doesn't compile without a billion dependencies and their dependencies and so on.  No exactly sure how to get mono 3.2.7 on there or even to patch the older version.

 

There is no apt-get or yum in this OS so its all manual resolutions.

Did you check unRaid 6 beta?  unRaid 6 is the HOST (well technically it is the uber vm running under the XEN hypervisor that rules the rest).  Then you create a minimal vm of Fedora or Ubuntu to run Mono/MB3.  Then you have yum and apt-get.  Then unRaid don'ts havtas knows nuthins bout Mono or Media Browser or anything. B)

Posted

Did you check unRaid 6 beta?  unRaid 6 is the HOST (well technically it is the uber vm running under the XEN hypervisor that rules the rest).  Then you create a minimal vm of Fedora or Ubuntu to run Mono/MB3.  Then you have yum and apt-get.  Then unRaid don'ts havtas knows nuthins bout Mono or Media Browser or anything. B)

Yeah and I think that's going to be great. I'm waiting for it to go final first. As for users on 5.x this plugin should be a quick way to install similar to sickbeard and couchpotato do.  The good news is I found a compiled compatible mono for i686 architecture, version 3.2.8-1.  It installed fine, and I launched the application however i'm getting an exception that's preventing mb3 from staring up.  Any ideas?

Info, Main, Media Browser Server started
Info, Main, Command line: /mnt/user/Test/MBServer.Mono/MediaBrowser.Server.Mono.exe
Info, Main, Server: UnRaid-Test
Info, Main, Operating system: Unix 3.9.6.0
appHost.Init
Info, App, Application Configuration:
	{"WeatherUnit":"Fahrenheit","EnableHttpLevelLogging":true,"EnableUPnP":true,"HttpServerPortNumber":8096,"LegacyWebSocketPortNumber":8945,"EnableInternetProviders":true,"SeasonZeroDisplayName":"Specials","MetadataRefreshDays":30,"SaveLocalMeta":false,"RefreshItemImages":false,"PreferredMetadataLanguage":"en","MetadataCountryCode":"US","SortReplaceCharacters":[".","+","%"],"SortRemoveCharacters":[",","&","-","{","}","'"],"SortRemoveWords":["the","a","an"],"ShowLogWindow":false,"RecentItemDays":10,"MinResumePct":5,"MaxResumePct":90,"MinResumeDurationSeconds":300,"RealtimeWatcherDelay":20,"EnableDashboardResponseCaching":true,"ManualLoginClients":[],"EnableTvDbUpdates":false,"EnableTmdbUpdates":false,"EnableFanArtUpdates":false,"ImageSavingConvention":"Compatible","EnablePeoplePrefixSubFolders":true,"MediaEncodingQuality":"Auto","AllowVideoUpscaling":false,"EnableMovieChapterImageExtraction":true,"EnableEpisodeChapterImageExtraction":false,"EnableOtherVideoChapterImageExtraction":false,"MetadataOptions":[{"ItemType":"Book","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"MusicAlbum","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"MusicArtist","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"Season","ImageOptions":[{"Type":"Backdrop","Limit":0,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]}],"EnableDebugEncodingLogging":false,"EnableAutomaticRestart":true,"TvFileOrganizationOptions":{"IsEnabled":false,"MinFileSizeMb":50,"LeftOverFileExtensionsToDelete":[],"WatchLocations":[],"SeasonFolderPattern":"Season %s","SeasonZeroFolderName":"Season 0","EpisodeNamePattern":"%sn - %sx%0e - %en.%ext","MultiEpisodeNamePattern":"%sn - %sx%0e-x%0ed - %en.%ext","OverwriteExistingEpisodes":false,"DeleteEmptyFolders":false,"CopyOriginalFile":false},"LiveTvOptions":{},"EnableRealtimeMonitor":true,"PathSubstitutions":[],"EnableDebugLevelLogging":false,"EnableAutoUpdate":true,"SystemUpdateLevel":"Release","LogFileRetentionDays":3,"RunAtStartup":false,"IsStartupWizardCompleted":false}
Info, App, Loading MediaBrowser.Api, Version=3.0.5180.21472, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.WebDashboard, Version=3.0.5180.21471, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.Model, Version=3.0.5180.21468, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.Common, Version=3.0.5180.21469, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.Controller, Version=3.0.5180.21470, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.Providers, Version=3.0.5180.21470, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.Common.Implementations, Version=3.0.5180.21469, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.Server.Implementations, Version=3.0.5180.21471, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.Dlna, Version=3.0.5180.21472, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.IsoMounting.Linux, Version=1.0.5131.24779, Culture=neutral, PublicKeyToken=null
Info, App, Loading MediaBrowser.Server.Mono, Version=3.0.5180.21473, Culture=neutral, PublicKeyToken=null
Info, App, Version 3.0.5180.21473 initializing
Info, SqliteUserRepository, Opening /mnt/user/Test/MBServer.Mono/ProgramData-Server/data/users.db
Error, Main, UnhandledException
	One or more errors occured
	System.AggregateException
	  at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) [0x00000] in <filename unknown>:0 
	  at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks) [0x00000] in <filename unknown>:0 
	  at MediaBrowser.Server.Mono.MainClass.RunApplication (MediaBrowser.Server.Implementations.ServerApplicationPaths appPaths, ILogManager logManager) [0x00000] in <filename unknown>:0 
	  at MediaBrowser.Server.Mono.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 
	InnerException: System.DllNotFoundException
	./sqlite3/linux/lib64/libsqlite3.so.0.8.6
	  at (wrapper managed-to-native) System.Data.SQLite.UnsafeNativeMethods:sqlite3_config_none (System.Data.SQLite.SQLiteConfigOpsEnum)
	  at System.Data.SQLite.SQLite3.StaticIsInitialized () [0x00000] in <filename unknown>:0 
	  at System.Data.SQLite.SQLiteLog.Initialize () [0x00000] in <filename unknown>:0 
	  at System.Data.SQLite.SQLiteConnection..ctor (System.String connectionString, Boolean parseViaFramework) [0x00000] in <filename unknown>:0 
	  at System.Data.SQLite.SQLiteConnection..ctor (System.String connectionString) [0x00000] in <filename unknown>:0 
	  at (wrapper remoting-invoke-with-check) System.Data.SQLite.SQLiteConnection:.ctor (string)
	  at MediaBrowser.Server.Implementations.Persistence.SqliteExtensions+<ConnectToDb>c__async76.MoveNext () [0x00000] in <filename unknown>:0 
	--- End of stack trace from previous location where exception was thrown ---
	  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
	  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.Data.IDbConnection].GetResult () [0x00000] in <filename unknown>:0 
	  at MediaBrowser.Server.Implementations.Persistence.SqliteUserRepository+<Initialize>c__asyncA1.MoveNext () [0x00000] in <filename unknown>:0 
	--- End of stack trace from previous location where exception was thrown ---
	  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
	  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
	  at MediaBrowser.ServerApplication.ApplicationHost+<GetUserRepository>c__async3.MoveNext () [0x00000] in <filename unknown>:0 
	--- End of stack trace from previous location where exception was thrown ---
	  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
	  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[MediaBrowser.Controller.Persistence.IUserRepository].GetResult () [0x00000] in <filename unknown>:0 
	  at MediaBrowser.ServerApplication.ApplicationHost+<RegisterResources>c__async1.MoveNext () [0x00000] in <filename unknown>:0 
	--- End of stack trace from previous location where exception was thrown ---
	  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
	  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
	  at MediaBrowser.Common.Implementations.BaseApplicationHost`1+<Init>c__async0[MediaBrowser.Server.Implementations.ServerApplicationPaths].MoveNext () [0x00000] in <filename unknown>:0 
	
UnhandledException
One or more errors occured
System.AggregateException
  at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) [0x00000] in <filename unknown>:0 
  at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks) [0x00000] in <filename unknown>:0 
  at MediaBrowser.Server.Mono.MainClass.RunApplication (MediaBrowser.Server.Implementations.ServerApplicationPaths appPaths, ILogManager logManager) [0x00000] in <filename unknown>:0 
  at MediaBrowser.Server.Mono.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 
InnerException: System.DllNotFoundException
./sqlite3/linux/lib64/libsqlite3.so.0.8.6
  at (wrapper managed-to-native) System.Data.SQLite.UnsafeNativeMethods:sqlite3_config_none (System.Data.SQLite.SQLiteConfigOpsEnum)
  at System.Data.SQLite.SQLite3.StaticIsInitialized () [0x00000] in <filename unknown>:0 
  at System.Data.SQLite.SQLiteLog.Initialize () [0x00000] in <filename unknown>:0 
  at System.Data.SQLite.SQLiteConnection..ctor (System.String connectionString, Boolean parseViaFramework) [0x00000] in <filename unknown>:0 
  at System.Data.SQLite.SQLiteConnection..ctor (System.String connectionString) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Data.SQLite.SQLiteConnection:.ctor (string)
  at MediaBrowser.Server.Implementations.Persistence.SqliteExtensions+<ConnectToDb>c__async76.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.Data.IDbConnection].GetResult () [0x00000] in <filename unknown>:0 
  at MediaBrowser.Server.Implementations.Persistence.SqliteUserRepository+<Initialize>c__asyncA1.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
  at MediaBrowser.ServerApplication.ApplicationHost+<GetUserRepository>c__async3.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[MediaBrowser.Controller.Persistence.IUserRepository].GetResult () [0x00000] in <filename unknown>:0 
  at MediaBrowser.ServerApplication.ApplicationHost+<RegisterResources>c__async1.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
  at MediaBrowser.Common.Implementations.BaseApplicationHost`1+<Init>c__async0[MediaBrowser.Server.Implementations.ServerApplicationPaths].MoveNext () [0x00000] in <filename unknown>:0 


Posted (edited)

It seems the users.db file was never created.  Does this have sqlite embedded also or do I still need to install that on a fresh linux install?

 

EDIT: Further debugging shows it seems to be calling Kernel32.dll.so and can't load the shared object. So, at this point, MB3 might work on linux but installing it on Unraid at this point seems to be a problem.

Edited by PhAzE
smitopher
Posted

OK... now that I got my Linux server running the way I kinda want, time to attach the "run as a daemon" issue.

 

it seems that "mono-service" is part of the answer.

 

What I have Working.

[smitopher@localhost MBServer]$ mono -V
Mono JIT compiler version 3.2.8 (tarball Thu Feb 20 17:33:58 UTC 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:           __thread
SIGSEGV:       altstack
Notifications: epoll
Architecture:  amd64
Disabled:      none
Misc:          softdebug 
LLVM:          supported, not enabled.
GC:            sgen
[smitopher@localhost MBServer]$ 

Mono 3.2.8 installed as described in my earlier post.

 

the mono-service command

[smitopher@localhost MBServer]$ mono-service
You must specify at least the assembly name

Usage is: /opt/mono/bin/mono-service [options] service

    -d:<directory>         Working directory
    -l:<lock file>         Lock file (default is /tmp/<service>.lock)
    -m:<syslog name>       Name to show in syslog
    -n:<service name>      Name of service to start (default is first defined)
    --debug                Do not send to background nor redirect input/output
    --no-daemon            Do not send to background nor redirect input/output

Controlling the service:

    kill -USR1 `cat <lock file>`    Pausing service
    kill -USR2 `cat <lock file>`    Continuing service
    kill `cat <lock file>`          Ending service

[smitopher@localhost MBServer]$ 

i get MB3 running as a daemon with the following command

mono-service -d:/home/smitopher/MBServer -n:MediaBrowser3  MediaBrowser.Server.Mono.exe

the -d: parameter is where I have MB3 unzipped.  This seems required as MB3 would not start without it,

 

It seems to be running perfectly happy. 

 

What is needed now is

  • a good script for /etc/init.d to start and stop MB3
  • A good install story
  • A good update story

What seems to be out of our control is when Mono 3.2.x will be available in the standard distro repositories.

  • Like 1
Posted

OK... now that I got my Linux server running the way I kinda want, time to attach the "run as a daemon" issue.

 

it seems that "mono-service" is part of the answer.

 

What I have Working.

[smitopher@localhost MBServer]$ mono -V
Mono JIT compiler version 3.2.8 (tarball Thu Feb 20 17:33:58 UTC 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:           __thread
SIGSEGV:       altstack
Notifications: epoll
Architecture:  amd64
Disabled:      none
Misc:          softdebug 
LLVM:          supported, not enabled.
GC:            sgen
[smitopher@localhost MBServer]$ 

Mono 3.2.8 installed as described in my earlier post.

 

the mono-service command

[smitopher@localhost MBServer]$ mono-service
You must specify at least the assembly name

Usage is: /opt/mono/bin/mono-service [options] service

    -d:<directory>         Working directory
    -l:<lock file>         Lock file (default is /tmp/<service>.lock)
    -m:<syslog name>       Name to show in syslog
    -n:<service name>      Name of service to start (default is first defined)
    --debug                Do not send to background nor redirect input/output
    --no-daemon            Do not send to background nor redirect input/output

Controlling the service:

    kill -USR1 `cat <lock file>`    Pausing service
    kill -USR2 `cat <lock file>`    Continuing service
    kill `cat <lock file>`          Ending service

[smitopher@localhost MBServer]$ 

i get MB3 running as a daemon with the following command

mono-service -d:/home/smitopher/MBServer -n:MediaBrowser3  MediaBrowser.Server.Mono.exe

the -d: parameter is where I have MB3 unzipped.  This seems required as MB3 would not start without it,

 

It seems to be running perfectly happy. 

 

What is needed now is

  • a good script for /etc/init.d to start and stop MB3
  • A good install story
  • A good update story

What seems to be out of our control is when Mono 3.2.x will be available in the standard distro repositories.

 

Awesome! We have actually started working on in-app updates for linux just like the windows version. No eta on it yet though. But that is fantastic news that we may not need a whole lot of new development in order to run as a daemon.

  • Like 1
Posted

 

 

What is needed now is

  • a good script for /etc/init.d to start and stop MB3
  • A good install story
  • A good update story

What seems to be out of our control is when Mono 3.2.x will be available in the standard distro repositories.

 

Note that /etc/init.d is obsolete on several distros, and will soon be obsolete on almost all of them. All of the major distros either already have, or will soon, switch to systemd. So while an /etc/init.d script may be useful for people running obsolete distros (eg., unRaid), I suggest that the developers not put a lot of effort into /etc/init.d daemons. A systemd service should be the mainstream method.

 

I do not have a lot of time at the moment, but if no one else has done it when I get a chance to look at it, I will see what is necessary to make a systemd MB3 service. It do not think it would be particularly tricky, unless there is a permissions issue.

Posted

I'll give it a go but not until later tonight.  How long does the build take?

 

Thanks. It should just be a few minutes once you're setup for it.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...